提交 a5695a79 编写于 作者: J Jan Kara 提交者: Jens Axboe

coda: Convert to separately allocated bdi

Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.

CC: Jan Harkes <jaharkes@cs.cmu.edu>
CC: coda@cs.cmu.edu
CC: codalist@coda.cs.cmu.edu
Reviewed-by: NChristoph Hellwig <hch@lst.de>
Signed-off-by: NJan Kara <jack@suse.cz>
Signed-off-by: NJens Axboe <axboe@fb.com>
上级 fa06052d
...@@ -183,10 +183,6 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent) ...@@ -183,10 +183,6 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
goto unlock_out; goto unlock_out;
} }
error = bdi_setup_and_register(&vc->bdi, "coda");
if (error)
goto unlock_out;
vc->vc_sb = sb; vc->vc_sb = sb;
mutex_unlock(&vc->vc_mutex); mutex_unlock(&vc->vc_mutex);
...@@ -197,7 +193,10 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent) ...@@ -197,7 +193,10 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
sb->s_magic = CODA_SUPER_MAGIC; sb->s_magic = CODA_SUPER_MAGIC;
sb->s_op = &coda_super_operations; sb->s_op = &coda_super_operations;
sb->s_d_op = &coda_dentry_operations; sb->s_d_op = &coda_dentry_operations;
sb->s_bdi = &vc->bdi;
error = super_setup_bdi(sb);
if (error)
goto error;
/* get root fid from Venus: this needs the root inode */ /* get root fid from Venus: this needs the root inode */
error = venus_rootfid(sb, &fid); error = venus_rootfid(sb, &fid);
...@@ -228,7 +227,6 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent) ...@@ -228,7 +227,6 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
error: error:
mutex_lock(&vc->vc_mutex); mutex_lock(&vc->vc_mutex);
bdi_destroy(&vc->bdi);
vc->vc_sb = NULL; vc->vc_sb = NULL;
sb->s_fs_info = NULL; sb->s_fs_info = NULL;
unlock_out: unlock_out:
...@@ -240,7 +238,6 @@ static void coda_put_super(struct super_block *sb) ...@@ -240,7 +238,6 @@ static void coda_put_super(struct super_block *sb)
{ {
struct venus_comm *vcp = coda_vcp(sb); struct venus_comm *vcp = coda_vcp(sb);
mutex_lock(&vcp->vc_mutex); mutex_lock(&vcp->vc_mutex);
bdi_destroy(&vcp->bdi);
vcp->vc_sb = NULL; vcp->vc_sb = NULL;
sb->s_fs_info = NULL; sb->s_fs_info = NULL;
mutex_unlock(&vcp->vc_mutex); mutex_unlock(&vcp->vc_mutex);
......
...@@ -15,7 +15,6 @@ struct venus_comm { ...@@ -15,7 +15,6 @@ struct venus_comm {
struct list_head vc_processing; struct list_head vc_processing;
int vc_inuse; int vc_inuse;
struct super_block *vc_sb; struct super_block *vc_sb;
struct backing_dev_info bdi;
struct mutex vc_mutex; struct mutex vc_mutex;
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册