/kernel/linux/linux-5.10/fs/overlayfs/ |
H A D | dir.c | 321 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); in ovl_create_upper() local 322 struct inode *udir = upperdir->d_inode; in ovl_create_upper() 332 upperdir, in ovl_create_upper() 362 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); in ovl_clear_empty() local 363 struct inode *udir = upperdir->d_inode; in ovl_clear_empty() 373 err = ovl_lock_rename_workdir(workdir, upperdir); in ovl_clear_empty() 415 unlock_rename(workdir, upperdir); in ovl_clear_empty() 426 unlock_rename(workdir, upperdir); in ovl_clear_empty() 461 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); in ovl_create_over_whiteout() local 462 struct inode *udir = upperdir in ovl_create_over_whiteout() 760 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); ovl_remove_and_whiteout() local 812 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); ovl_remove_upper() local [all...] |
H A D | super.c | 250 kfree(ofs->config.upperdir); in ovl_free_fs() 366 if (ofs->config.upperdir) { in ovl_show_options() 367 seq_show_option(m, "upperdir", ofs->config.upperdir); in ovl_show_options() 443 {OPT_UPPERDIR, "upperdir=%s"}, 527 kfree(config->upperdir); in ovl_parse_opt() 528 config->upperdir = match_strdup(&args[0]); in ovl_parse_opt() 529 if (!config->upperdir) in ovl_parse_opt() 613 if (!config->upperdir) { in ovl_parse_opt() 627 if (!config->upperdir in ovl_parse_opt() 918 ovl_workdir_ok(struct dentry *workdir, struct dentry *upperdir) ovl_workdir_ok() argument [all...] |
H A D | util.c | 853 int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir) in ovl_lock_rename_workdir() argument 855 /* Workdir should not be the same as upperdir */ in ovl_lock_rename_workdir() 856 if (workdir == upperdir) in ovl_lock_rename_workdir() 859 /* Workdir should not be subdir of upperdir and vice versa */ in ovl_lock_rename_workdir() 860 if (lock_rename(workdir, upperdir) != NULL) in ovl_lock_rename_workdir() 866 unlock_rename(workdir, upperdir); in ovl_lock_rename_workdir() 868 pr_err("failed to lock workdir+upperdir\n"); in ovl_lock_rename_workdir() 963 * have occurred on the upperdir since the mount.
|
H A D | copy_up.c | 454 struct dentry *upperdir = ovl_dentry_upper(c->parent); in ovl_link_up() local 455 struct inode *udir = d_inode(upperdir); in ovl_link_up() 458 err = ovl_set_impure(c->parent, upperdir); in ovl_link_up() 467 upper = lookup_one_len(c->dentry->d_name.name, upperdir, in ovl_link_up() 476 ovl_set_timestamps(upperdir, &c->pstat); in ovl_link_up()
|
H A D | ovl_entry.h | 10 char *upperdir; member 91 /* r/o snapshot of upperdir sb's only taken on volatile mounts */
|
H A D | namei.c | 825 struct dentry *upperdir, *upperdentry = NULL; in ovl_lookup() local 851 upperdir = ovl_dentry_upper(dentry->d_parent); in ovl_lookup() 852 if (upperdir) { in ovl_lookup() 853 err = ovl_lookup_layer(upperdir, &d, &upperdentry, true); in ovl_lookup()
|
H A D | overlayfs.h | 319 int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir);
|
/kernel/linux/linux-6.6/fs/overlayfs/ |
H A D | dir.c | 325 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); in ovl_create_upper() local 326 struct inode *udir = upperdir->d_inode; in ovl_create_upper() 336 upperdir, dentry->d_name.len), in ovl_create_upper() 367 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); in ovl_clear_empty() local 368 struct inode *udir = upperdir->d_inode; in ovl_clear_empty() 378 err = ovl_lock_rename_workdir(workdir, upperdir); in ovl_clear_empty() 420 unlock_rename(workdir, upperdir); in ovl_clear_empty() 431 unlock_rename(workdir, upperdir); in ovl_clear_empty() 451 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); in ovl_create_over_whiteout() local 452 struct inode *udir = upperdir in ovl_create_over_whiteout() 751 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); ovl_remove_and_whiteout() local 804 struct dentry *upperdir = ovl_dentry_upper(dentry->d_parent); ovl_remove_upper() local [all...] |
H A D | params.c | 150 fsparam_string("upperdir", Opt_upperdir), 305 return invalfc(fc, "filesystem on %s not supported as upperdir", name); in ovl_mount_dir_check() 354 swap(config->upperdir, *pname); in ovl_add_layer() 780 kfree(ofs->config.upperdir); in ovl_free_fs() 798 if (!config->upperdir) { in ovl_fs_params_verify() 812 if (!config->upperdir && config->ovl_volatile) { in ovl_fs_params_verify() 817 if (!config->upperdir && config->uuid == OVL_UUID_ON) { in ovl_fs_params_verify() 838 if (!config->upperdir && config->redirect_mode == OVL_REDIRECT_FOLLOW) in ovl_fs_params_verify() 869 if (!config->upperdir && in ovl_fs_params_verify() 986 if (ofs->config.upperdir) { in ovl_show_options() [all...] |
H A D | super.c | 403 (ofs->config.index && ofs->config.upperdir)) && !fh_type) { in ovl_lower_dir() 415 ofs->config.upperdir && !fh_type) { in ovl_lower_dir() 428 /* Workdir should not be subdir of upperdir and vice versa */ 429 static bool ovl_workdir_ok(struct dentry *workdir, struct dentry *upperdir) in ovl_workdir_ok() argument 433 if (workdir != upperdir) { in ovl_workdir_ok() 434 ok = (lock_rename(workdir, upperdir) == NULL); in ovl_workdir_ok() 435 unlock_rename(workdir, upperdir); in ovl_workdir_ok() 521 * Determine how we treat concurrent use of upperdir/workdir based on the 523 * for example, an old overlay mount is leaked and now its upperdir is 529 pr_err("%s is in-use as upperdir/workdi in ovl_report_in_use() [all...] |
H A D | ovl_entry.h | 9 char *upperdir; member 92 /* r/o snapshot of upperdir sb's only taken on volatile mounts */
|
H A D | copy_up.c | 554 struct dentry *upperdir = ovl_dentry_upper(c->parent); in ovl_link_up() local 556 struct inode *udir = d_inode(upperdir); in ovl_link_up() 559 err = ovl_set_impure(c->parent, upperdir); in ovl_link_up() 568 upper = ovl_lookup_upper(ofs, c->dentry->d_name.name, upperdir, in ovl_link_up() 577 ovl_set_timestamps(ofs, upperdir, &c->pstat); in ovl_link_up()
|
H A D | namei.c | 1009 struct dentry *upperdir, *upperdentry = NULL; in ovl_lookup() local 1036 upperdir = ovl_dentry_upper(dentry->d_parent); in ovl_lookup() 1037 if (upperdir) { in ovl_lookup() 1039 err = ovl_lookup_layer(upperdir, &d, &upperdentry, true); in ovl_lookup()
|
H A D | util.c | 1100 int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir) in ovl_lock_rename_workdir() argument 1102 /* Workdir should not be the same as upperdir */ in ovl_lock_rename_workdir() 1103 if (workdir == upperdir) in ovl_lock_rename_workdir() 1106 /* Workdir should not be subdir of upperdir and vice versa */ in ovl_lock_rename_workdir() 1107 if (lock_rename(workdir, upperdir) != NULL) in ovl_lock_rename_workdir() 1113 unlock_rename(workdir, upperdir); in ovl_lock_rename_workdir() 1115 pr_err("failed to lock workdir+upperdir\n"); in ovl_lock_rename_workdir() 1363 * have occurred on the upperdir since the mount.
|
H A D | overlayfs.h | 501 int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir);
|