fs: deduplicate noop_backing_dev_info
authorChristoph Hellwig <hch@lst.de>
Wed, 14 Jan 2015 09:42:30 +0000 (10:42 +0100)
committerJens Axboe <axboe@fb.com>
Tue, 20 Jan 2015 21:02:54 +0000 (14:02 -0700)
hugetlbfs, kernfs and dlmfs can simply use noop_backing_dev_info instead
of creating a local duplicate.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
fs/hugetlbfs/inode.c
fs/kernfs/inode.c
fs/kernfs/kernfs-internal.h
fs/kernfs/mount.c
fs/ocfs2/dlmfs/dlmfs.c

index 5eba47f593f8f888855c6b83428455f8b46af670..de7c95c7d8409f97dd7187ae1a9e7d96ce15be2f 100644 (file)
@@ -62,12 +62,6 @@ static inline struct hugetlbfs_inode_info *HUGETLBFS_I(struct inode *inode)
        return container_of(inode, struct hugetlbfs_inode_info, vfs_inode);
 }
 
-static struct backing_dev_info hugetlbfs_backing_dev_info = {
-       .name           = "hugetlbfs",
-       .ra_pages       = 0,    /* No readahead */
-       .capabilities   = BDI_CAP_NO_ACCT_AND_WRITEBACK,
-};
-
 int sysctl_hugetlb_shm_group;
 
 enum {
@@ -498,7 +492,7 @@ static struct inode *hugetlbfs_get_inode(struct super_block *sb,
                lockdep_set_class(&inode->i_mapping->i_mmap_rwsem,
                                &hugetlbfs_i_mmap_rwsem_key);
                inode->i_mapping->a_ops = &hugetlbfs_aops;
-               inode->i_mapping->backing_dev_info =&hugetlbfs_backing_dev_info;
+               inode->i_mapping->backing_dev_info = &noop_backing_dev_info;
                inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
                inode->i_mapping->private_data = resv_map;
                info = HUGETLBFS_I(inode);
@@ -1032,10 +1026,6 @@ static int __init init_hugetlbfs_fs(void)
                return -ENOTSUPP;
        }
 
-       error = bdi_init(&hugetlbfs_backing_dev_info);
-       if (error)
-               return error;
-
        error = -ENOMEM;
        hugetlbfs_inode_cachep = kmem_cache_create("hugetlbfs_inode_cache",
                                        sizeof(struct hugetlbfs_inode_info),
@@ -1071,7 +1061,6 @@ static int __init init_hugetlbfs_fs(void)
  out:
        kmem_cache_destroy(hugetlbfs_inode_cachep);
  out2:
-       bdi_destroy(&hugetlbfs_backing_dev_info);
        return error;
 }
 
@@ -1091,7 +1080,6 @@ static void __exit exit_hugetlbfs_fs(void)
        for_each_hstate(h)
                kern_unmount(hugetlbfs_vfsmount[i++]);
        unregister_filesystem(&hugetlbfs_fs_type);
-       bdi_destroy(&hugetlbfs_backing_dev_info);
 }
 
 module_init(init_hugetlbfs_fs)
index 985217626e663f360afd6db67ae13ffdf2cad9ca..06f06887b2d2d2cb39e07f876f991c341e8a4d90 100644 (file)
@@ -24,12 +24,6 @@ static const struct address_space_operations kernfs_aops = {
        .write_end      = simple_write_end,
 };
 
-static struct backing_dev_info kernfs_bdi = {
-       .name           = "kernfs",
-       .ra_pages       = 0,    /* No readahead */
-       .capabilities   = BDI_CAP_NO_ACCT_AND_WRITEBACK,
-};
-
 static const struct inode_operations kernfs_iops = {
        .permission     = kernfs_iop_permission,
        .setattr        = kernfs_iop_setattr,
@@ -40,12 +34,6 @@ static const struct inode_operations kernfs_iops = {
        .listxattr      = kernfs_iop_listxattr,
 };
 
-void __init kernfs_inode_init(void)
-{
-       if (bdi_init(&kernfs_bdi))
-               panic("failed to init kernfs_bdi");
-}
-
 static struct kernfs_iattrs *kernfs_iattrs(struct kernfs_node *kn)
 {
        static DEFINE_MUTEX(iattr_mutex);
@@ -298,7 +286,7 @@ static void kernfs_init_inode(struct kernfs_node *kn, struct inode *inode)
        kernfs_get(kn);
        inode->i_private = kn;
        inode->i_mapping->a_ops = &kernfs_aops;
-       inode->i_mapping->backing_dev_info = &kernfs_bdi;
+       inode->i_mapping->backing_dev_info = &noop_backing_dev_info;
        inode->i_op = &kernfs_iops;
 
        set_default_inode_attr(inode, kn->mode);
index dc84a3ef9ca20420ff29c691abfa8436395ed993..af9fa7499919c5524be673f83b3ee6fb94f47b06 100644 (file)
@@ -88,7 +88,6 @@ int kernfs_iop_removexattr(struct dentry *dentry, const char *name);
 ssize_t kernfs_iop_getxattr(struct dentry *dentry, const char *name, void *buf,
                            size_t size);
 ssize_t kernfs_iop_listxattr(struct dentry *dentry, char *buf, size_t size);
-void kernfs_inode_init(void);
 
 /*
  * dir.c
index f973ae9b05f15d64b7202c7a30d7a86c60a64d6a..8eaf417187f11b8089b2fbd2faf463c584e8ac65 100644 (file)
@@ -246,5 +246,4 @@ void __init kernfs_init(void)
        kernfs_node_cache = kmem_cache_create("kernfs_node_cache",
                                              sizeof(struct kernfs_node),
                                              0, SLAB_PANIC, NULL);
-       kernfs_inode_init();
 }
index 57c40e34f56feb038297ff2e120e62cb3c44807c..6000d3029b26d847bcf0795684de3de21fa8f817 100644 (file)
@@ -390,12 +390,6 @@ clear_fields:
        ip->ip_conn = NULL;
 }
 
-static struct backing_dev_info dlmfs_backing_dev_info = {
-       .name           = "ocfs2-dlmfs",
-       .ra_pages       = 0,    /* No readahead */
-       .capabilities   = BDI_CAP_NO_ACCT_AND_WRITEBACK,
-};
-
 static struct inode *dlmfs_get_root_inode(struct super_block *sb)
 {
        struct inode *inode = new_inode(sb);
@@ -404,7 +398,7 @@ static struct inode *dlmfs_get_root_inode(struct super_block *sb)
        if (inode) {
                inode->i_ino = get_next_ino();
                inode_init_owner(inode, NULL, mode);
-               inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
+               inode->i_mapping->backing_dev_info = &noop_backing_dev_info;
                inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
                inc_nlink(inode);
 
@@ -428,7 +422,7 @@ static struct inode *dlmfs_get_inode(struct inode *parent,
 
        inode->i_ino = get_next_ino();
        inode_init_owner(inode, parent, mode);
-       inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
+       inode->i_mapping->backing_dev_info = &noop_backing_dev_info;
        inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 
        ip = DLMFS_I(inode);
@@ -643,10 +637,6 @@ static int __init init_dlmfs_fs(void)
        int status;
        int cleanup_inode = 0, cleanup_worker = 0;
 
-       status = bdi_init(&dlmfs_backing_dev_info);
-       if (status)
-               return status;
-
        dlmfs_inode_cache = kmem_cache_create("dlmfs_inode_cache",
                                sizeof(struct dlmfs_inode_private),
                                0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT|
@@ -673,7 +663,6 @@ bail:
                        kmem_cache_destroy(dlmfs_inode_cache);
                if (cleanup_worker)
                        destroy_workqueue(user_dlm_worker);
-               bdi_destroy(&dlmfs_backing_dev_info);
        } else
                printk("OCFS2 User DLM kernel interface loaded\n");
        return status;
@@ -693,7 +682,6 @@ static void __exit exit_dlmfs_fs(void)
        rcu_barrier();
        kmem_cache_destroy(dlmfs_inode_cache);
 
-       bdi_destroy(&dlmfs_backing_dev_info);
 }
 
 MODULE_AUTHOR("Oracle");