/linux-6.12.1/fs/overlayfs/ |
D | super.c | 360 ofs->config.workdir, name, -err); in ovl_workdir_create() 423 static bool ovl_workdir_ok(struct dentry *workdir, struct dentry *upperdir) in ovl_workdir_ok() argument 427 if (workdir != upperdir) { in ovl_workdir_ok() 428 struct dentry *trap = lock_rename(workdir, upperdir); in ovl_workdir_ok() 430 unlock_rename(workdir, upperdir); in ovl_workdir_ok() 540 struct dentry *workdir = ofs->workdir; in ovl_check_rename_whiteout() local 541 struct inode *dir = d_inode(workdir); in ovl_check_rename_whiteout() 550 temp = ovl_create_temp(ofs, workdir, OVL_CATTR(S_IFREG | 0)); in ovl_check_rename_whiteout() 555 dest = ovl_lookup_temp(ofs, workdir); in ovl_check_rename_whiteout() 571 whiteout = ovl_lookup_upper(ofs, name.name.name, workdir, name.name.len); in ovl_check_rename_whiteout() [all …]
|
D | dir.c | 46 struct dentry *ovl_lookup_temp(struct ovl_fs *ofs, struct dentry *workdir) in ovl_lookup_temp() argument 55 temp = ovl_lookup_upper(ofs, name, workdir, strlen(name)); in ovl_lookup_temp() 70 struct dentry *workdir = ofs->workdir; in ovl_whiteout() local 71 struct inode *wdir = workdir->d_inode; in ovl_whiteout() 74 whiteout = ovl_lookup_temp(ofs, workdir); in ovl_whiteout() 88 whiteout = ovl_lookup_temp(ofs, workdir); in ovl_whiteout() 113 struct inode *wdir = ofs->workdir->d_inode; in ovl_cleanup_and_whiteout() 228 struct dentry *ovl_create_temp(struct ovl_fs *ofs, struct dentry *workdir, in ovl_create_temp() argument 231 return ovl_create_real(ofs, d_inode(workdir), in ovl_create_temp() 232 ovl_lookup_temp(ofs, workdir), attr); in ovl_create_temp() [all …]
|
D | params.c | 346 swap(config->workdir, *pname); in ovl_add_layer() 725 dput(ofs->workdir); in ovl_free_fs() 747 kfree(ofs->config.workdir); in ovl_free_fs() 760 if (config->workdir) { in ovl_fs_params_verify() 762 config->workdir); in ovl_fs_params_verify() 763 kfree(config->workdir); in ovl_fs_params_verify() 764 config->workdir = NULL; in ovl_fs_params_verify() 982 seq_show_option(m, "workdir", ofs->config.workdir); in ovl_show_options()
|
D | ovl_entry.h | 10 char *workdir; member 69 struct dentry *workdir; member
|
D | copy_up.c | 588 struct dentry *workdir; member 766 struct inode *udir = d_inode(c->destdir), *wdir = d_inode(c->workdir); in ovl_copy_up_workdir() 784 temp = ovl_create_temp(ofs, c->workdir, &cattr); in ovl_copy_up_workdir() 805 trap = lock_rename(c->workdir, c->destdir); in ovl_copy_up_workdir() 806 if (trap || temp->d_parent != c->workdir) { in ovl_copy_up_workdir() 851 unlock_rename(c->workdir, c->destdir); in ovl_copy_up_workdir() 878 tmpfile = ovl_do_tmpfile(ofs, c->workdir, c->stat.mode); in ovl_copy_up_tmpfile() 955 c->workdir = ovl_indexdir(c->dentry->d_sb); in ovl_do_copy_up() 1146 .workdir = ovl_workdir(dentry), in ovl_copy_up_one() 1149 if (WARN_ON(!ctx.workdir)) in ovl_copy_up_one()
|
D | util.c | 61 return ofs->workdir; in ovl_workdir() 94 return ofs->config.index ? ofs->workdir : NULL; in ovl_indexdir() 1212 int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir) in ovl_lock_rename_workdir() argument 1217 if (workdir == upperdir) in ovl_lock_rename_workdir() 1221 trap = lock_rename(workdir, upperdir); in ovl_lock_rename_workdir() 1230 unlock_rename(workdir, upperdir); in ovl_lock_rename_workdir()
|
D | overlayfs.h | 542 int ovl_lock_rename_workdir(struct dentry *workdir, struct dentry *upperdir); 854 struct dentry *ovl_lookup_temp(struct ovl_fs *ofs, struct dentry *workdir); 855 struct dentry *ovl_create_temp(struct ovl_fs *ofs, struct dentry *workdir, 888 return (!ovl_upper_mnt(ofs) || !ofs->workdir); in ovl_force_readonly()
|
D | inode.c | 540 struct dentry *workdir = ovl_workdir(dentry); in ovl_set_acl() local 543 if (!IS_POSIXACL(d_inode(workdir))) in ovl_set_acl()
|
D | namei.c | 762 index = lookup_positive_unlocked(name.name, ofs->workdir, name.len); in ovl_get_index_fh() 795 ofs->workdir, name.len); in ovl_lookup_index()
|
D | readdir.c | 1173 struct dentry *indexdir = ofs->workdir; in ovl_indexdir_cleanup()
|
/linux-6.12.1/tools/testing/selftests/hid/ |
D | hid_common.h | 318 static bool match_sysfs_device(int dev_id, const char *workdir, struct dirent *dir) in match_sysfs_device() argument 331 sprintf(uevent, "%s/%s/uevent", workdir, dir->d_name); in match_sysfs_device() 350 const char *workdir = "/sys/devices/virtual/misc/uhid"; in get_hid_id() local 360 d = opendir(workdir); in get_hid_id() 363 if (!match_sysfs_device(dev_id, workdir, dir)) in get_hid_id() 382 const char *workdir = "/sys/devices/virtual/misc/uhid"; in get_hidraw() local 391 d = opendir(workdir); in get_hidraw() 397 if (!match_sysfs_device(dev_id, workdir, dir)) in get_hidraw() 400 sprintf(sysfs, "%s/%s/hidraw", workdir, dir->d_name); in get_hidraw()
|
D | vmtest.sh | 129 --workdir ${OUTPUT_DIR} \
|
/linux-6.12.1/Documentation/filesystems/ |
D | overlayfs.rst | 124 workdir=/work /merged 126 The "workdir" needs to be an empty directory on the same filesystem 344 As the example shows, "upperdir=" and "workdir=" may be omitted. In 498 Using an upper layer path and/or a workdir path that are already used by 502 upper layer and/or workdir path the behavior of the overlay is undefined, 768 "$workdir/work/incompat/volatile" is created. During next mount, overlay
|