fs: deduplicate noop_backing_dev_info
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>
This commit is contained in:
parent
ec6f34e5b5
commit
a7a2c680a2
@ -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);
|
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;
|
int sysctl_hugetlb_shm_group;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -498,7 +492,7 @@ static struct inode *hugetlbfs_get_inode(struct super_block *sb,
|
|||||||
lockdep_set_class(&inode->i_mapping->i_mmap_rwsem,
|
lockdep_set_class(&inode->i_mapping->i_mmap_rwsem,
|
||||||
&hugetlbfs_i_mmap_rwsem_key);
|
&hugetlbfs_i_mmap_rwsem_key);
|
||||||
inode->i_mapping->a_ops = &hugetlbfs_aops;
|
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_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||||
inode->i_mapping->private_data = resv_map;
|
inode->i_mapping->private_data = resv_map;
|
||||||
info = HUGETLBFS_I(inode);
|
info = HUGETLBFS_I(inode);
|
||||||
@ -1032,10 +1026,6 @@ static int __init init_hugetlbfs_fs(void)
|
|||||||
return -ENOTSUPP;
|
return -ENOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
error = bdi_init(&hugetlbfs_backing_dev_info);
|
|
||||||
if (error)
|
|
||||||
return error;
|
|
||||||
|
|
||||||
error = -ENOMEM;
|
error = -ENOMEM;
|
||||||
hugetlbfs_inode_cachep = kmem_cache_create("hugetlbfs_inode_cache",
|
hugetlbfs_inode_cachep = kmem_cache_create("hugetlbfs_inode_cache",
|
||||||
sizeof(struct hugetlbfs_inode_info),
|
sizeof(struct hugetlbfs_inode_info),
|
||||||
@ -1071,7 +1061,6 @@ static int __init init_hugetlbfs_fs(void)
|
|||||||
out:
|
out:
|
||||||
kmem_cache_destroy(hugetlbfs_inode_cachep);
|
kmem_cache_destroy(hugetlbfs_inode_cachep);
|
||||||
out2:
|
out2:
|
||||||
bdi_destroy(&hugetlbfs_backing_dev_info);
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1091,7 +1080,6 @@ static void __exit exit_hugetlbfs_fs(void)
|
|||||||
for_each_hstate(h)
|
for_each_hstate(h)
|
||||||
kern_unmount(hugetlbfs_vfsmount[i++]);
|
kern_unmount(hugetlbfs_vfsmount[i++]);
|
||||||
unregister_filesystem(&hugetlbfs_fs_type);
|
unregister_filesystem(&hugetlbfs_fs_type);
|
||||||
bdi_destroy(&hugetlbfs_backing_dev_info);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(init_hugetlbfs_fs)
|
module_init(init_hugetlbfs_fs)
|
||||||
|
@ -24,12 +24,6 @@ static const struct address_space_operations kernfs_aops = {
|
|||||||
.write_end = simple_write_end,
|
.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 = {
|
static const struct inode_operations kernfs_iops = {
|
||||||
.permission = kernfs_iop_permission,
|
.permission = kernfs_iop_permission,
|
||||||
.setattr = kernfs_iop_setattr,
|
.setattr = kernfs_iop_setattr,
|
||||||
@ -40,12 +34,6 @@ static const struct inode_operations kernfs_iops = {
|
|||||||
.listxattr = kernfs_iop_listxattr,
|
.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 struct kernfs_iattrs *kernfs_iattrs(struct kernfs_node *kn)
|
||||||
{
|
{
|
||||||
static DEFINE_MUTEX(iattr_mutex);
|
static DEFINE_MUTEX(iattr_mutex);
|
||||||
@ -298,7 +286,7 @@ static void kernfs_init_inode(struct kernfs_node *kn, struct inode *inode)
|
|||||||
kernfs_get(kn);
|
kernfs_get(kn);
|
||||||
inode->i_private = kn;
|
inode->i_private = kn;
|
||||||
inode->i_mapping->a_ops = &kernfs_aops;
|
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;
|
inode->i_op = &kernfs_iops;
|
||||||
|
|
||||||
set_default_inode_attr(inode, kn->mode);
|
set_default_inode_attr(inode, kn->mode);
|
||||||
|
@ -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,
|
ssize_t kernfs_iop_getxattr(struct dentry *dentry, const char *name, void *buf,
|
||||||
size_t size);
|
size_t size);
|
||||||
ssize_t kernfs_iop_listxattr(struct dentry *dentry, char *buf, size_t size);
|
ssize_t kernfs_iop_listxattr(struct dentry *dentry, char *buf, size_t size);
|
||||||
void kernfs_inode_init(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dir.c
|
* dir.c
|
||||||
|
@ -246,5 +246,4 @@ void __init kernfs_init(void)
|
|||||||
kernfs_node_cache = kmem_cache_create("kernfs_node_cache",
|
kernfs_node_cache = kmem_cache_create("kernfs_node_cache",
|
||||||
sizeof(struct kernfs_node),
|
sizeof(struct kernfs_node),
|
||||||
0, SLAB_PANIC, NULL);
|
0, SLAB_PANIC, NULL);
|
||||||
kernfs_inode_init();
|
|
||||||
}
|
}
|
||||||
|
@ -390,12 +390,6 @@ clear_fields:
|
|||||||
ip->ip_conn = NULL;
|
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)
|
static struct inode *dlmfs_get_root_inode(struct super_block *sb)
|
||||||
{
|
{
|
||||||
struct inode *inode = new_inode(sb);
|
struct inode *inode = new_inode(sb);
|
||||||
@ -404,7 +398,7 @@ static struct inode *dlmfs_get_root_inode(struct super_block *sb)
|
|||||||
if (inode) {
|
if (inode) {
|
||||||
inode->i_ino = get_next_ino();
|
inode->i_ino = get_next_ino();
|
||||||
inode_init_owner(inode, NULL, mode);
|
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;
|
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||||
inc_nlink(inode);
|
inc_nlink(inode);
|
||||||
|
|
||||||
@ -428,7 +422,7 @@ static struct inode *dlmfs_get_inode(struct inode *parent,
|
|||||||
|
|
||||||
inode->i_ino = get_next_ino();
|
inode->i_ino = get_next_ino();
|
||||||
inode_init_owner(inode, parent, mode);
|
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;
|
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||||
|
|
||||||
ip = DLMFS_I(inode);
|
ip = DLMFS_I(inode);
|
||||||
@ -643,10 +637,6 @@ static int __init init_dlmfs_fs(void)
|
|||||||
int status;
|
int status;
|
||||||
int cleanup_inode = 0, cleanup_worker = 0;
|
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",
|
dlmfs_inode_cache = kmem_cache_create("dlmfs_inode_cache",
|
||||||
sizeof(struct dlmfs_inode_private),
|
sizeof(struct dlmfs_inode_private),
|
||||||
0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT|
|
0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT|
|
||||||
@ -673,7 +663,6 @@ bail:
|
|||||||
kmem_cache_destroy(dlmfs_inode_cache);
|
kmem_cache_destroy(dlmfs_inode_cache);
|
||||||
if (cleanup_worker)
|
if (cleanup_worker)
|
||||||
destroy_workqueue(user_dlm_worker);
|
destroy_workqueue(user_dlm_worker);
|
||||||
bdi_destroy(&dlmfs_backing_dev_info);
|
|
||||||
} else
|
} else
|
||||||
printk("OCFS2 User DLM kernel interface loaded\n");
|
printk("OCFS2 User DLM kernel interface loaded\n");
|
||||||
return status;
|
return status;
|
||||||
@ -693,7 +682,6 @@ static void __exit exit_dlmfs_fs(void)
|
|||||||
rcu_barrier();
|
rcu_barrier();
|
||||||
kmem_cache_destroy(dlmfs_inode_cache);
|
kmem_cache_destroy(dlmfs_inode_cache);
|
||||||
|
|
||||||
bdi_destroy(&dlmfs_backing_dev_info);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MODULE_AUTHOR("Oracle");
|
MODULE_AUTHOR("Oracle");
|
||||||
|
Loading…
Reference in New Issue
Block a user