takes vfsmount and relative path, does lookup within that vfsmount (possibly triggering automounts) and returns the result as root of subtree suitable for return by ->mount() (i.e. a reference to dentry and an active reference to its superblock grabbed, superblock locked exclusive). btrfs and nfs switched to it instead of open-coding the sucker.
Showing the changes to include (1 of 4 files). Show all
Unified · Split
| @@ -1886,6 +1886,7 @@ extern struct dentry *mount_single(struct file_system_type *fs_type, · 1885 unmodified lines | |||
| 1886 | extern struct dentry *mount_nodev(struct file_system_type *fs_type, | 1886 | extern struct dentry *mount_nodev(struct file_system_type *fs_type, |
| 1887 | int flags, void *data, | 1887 | int flags, void *data, |
| 1888 | int (*fill_super)(struct super_block *, void *, int)); | 1888 | int (*fill_super)(struct super_block *, void *, int)); |
| 1889 | extern struct dentry *mount_subtree(struct vfsmount *mnt, const char *path); | ||
| 1889 | void generic_shutdown_super(struct super_block *sb); | 1890 | void generic_shutdown_super(struct super_block *sb); |
| 1890 | void kill_block_super(struct super_block *sb); | 1891 | void kill_block_super(struct super_block *sb); |
| 1891 | void kill_anon_super(struct super_block *sb); | 1892 | void kill_anon_super(struct super_block *sb); |