OSDN Git Service

kill kernfs_pin_sb()
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 17 Jan 2019 17:02:57 +0000 (12:02 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 17 Jan 2019 17:02:57 +0000 (12:02 -0500)
unused now and impossible to use safely anyway.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/kernfs/mount.c
include/linux/kernfs.h

index d71c940..4d30304 100644 (file)
@@ -377,36 +377,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)
 {
 
index 5b36b12..44acb4c 100644 (file)
@@ -357,7 +357,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);