From: Al Viro viro@zeniv.linux.org.uk
mainline inclusion from mainline-5.1-rc1 commit 6d7fbce7da0cd06ff3f3f30e009a15a6243f0bc0 category: bugfix bugzilla: 30217 CVE: NA ---------------------------
unused now and impossible to use safely anyway.
Signed-off-by: Al Viro viro@zeniv.linux.org.uk Signed-off-by: yangerkun yangerkun@huawei.com Reviewed-by: Hou Tao houtao1@huawei.com Signed-off-by: Yang Yingliang yangyingliang@huawei.com --- fs/kernfs/mount.c | 30 ------------------------------ include/linux/kernfs.h | 1 - 2 files changed, 31 deletions(-)
diff --git a/fs/kernfs/mount.c b/fs/kernfs/mount.c index 0b22c39dad477..174e404f15507 100644 --- a/fs/kernfs/mount.c +++ b/fs/kernfs/mount.c @@ -374,36 +374,6 @@ void kernfs_kill_sb(struct super_block *sb) kfree(info); }
-/** - * kernfs_pin_sb: try to pin the superblock associated with a kernfs_root - * @kernfs_root: the kernfs_root in question - * @ns: the namespace tag - * - * Pin the superblock so the superblock won't be destroyed in subsequent - * operations. This can be used to block ->kill_sb() which may be useful - * for kernfs users which dynamically manage superblocks. - * - * Returns NULL if there's no superblock associated to this kernfs_root, or - * -EINVAL if the superblock is being freed. - */ -struct super_block *kernfs_pin_sb(struct kernfs_root *root, const void *ns) -{ - struct kernfs_super_info *info; - struct super_block *sb = NULL; - - mutex_lock(&kernfs_mutex); - list_for_each_entry(info, &root->supers, node) { - if (info->ns == ns) { - sb = info->sb; - if (!atomic_inc_not_zero(&info->sb->s_active)) - sb = ERR_PTR(-EINVAL); - break; - } - } - mutex_unlock(&kernfs_mutex); - return sb; -} - void __init kernfs_init(void) {
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h index e7a24d45a717b..c41790d5d6835 100644 --- a/include/linux/kernfs.h +++ b/include/linux/kernfs.h @@ -367,7 +367,6 @@ struct dentry *kernfs_mount_ns(struct file_system_type *fs_type, int flags, struct kernfs_root *root, unsigned long magic, bool *new_sb_created, const void *ns); void kernfs_kill_sb(struct super_block *sb); -struct super_block *kernfs_pin_sb(struct kernfs_root *root, const void *ns);
void kernfs_init(void);