int ovl_open_maybe_copy_up(struct dentry *dentry, unsigned int file_flags) { int err = 0; if (ovl_open_need_copy_up(dentry, file_flags)) { err = ovl_want_write(dentry); if (!err) { err = ovl_copy_up_flags(dentry, file_flags); ovl_drop_write(dentry); } } return err; }
int ovl_open_maybe_copy_up(struct dentry *dentry, unsigned int file_flags) { int err = 0; struct path realpath; enum ovl_path_type type; type = ovl_path_real(dentry, &realpath); if (ovl_open_need_copy_up(file_flags, type, realpath.dentry)) { err = ovl_want_write(dentry); if (!err) { err = ovl_copy_up_flags(dentry, file_flags); ovl_drop_write(dentry); } } return err; }