exofs: 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: Boaz Harrosh <ooo@electrozaur.com>
CC: Benny Halevy <bhalevy@primarydata.com>
Acked-by: Boaz Harrosh <ooo@electrozaur.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
Jan Kara 2017-04-12 12:24:39 +02:00 committed by Jens Axboe
parent a5695a7908
commit c7f014771b
2 changed files with 6 additions and 12 deletions

View File

@ -64,7 +64,6 @@ struct exofs_dev {
* our extension to the in-memory superblock * our extension to the in-memory superblock
*/ */
struct exofs_sb_info { struct exofs_sb_info {
struct backing_dev_info bdi; /* register our bdi with VFS */
struct exofs_sb_stats s_ess; /* Written often, pre-allocate*/ struct exofs_sb_stats s_ess; /* Written often, pre-allocate*/
int s_timeout; /* timeout for OSD operations */ int s_timeout; /* timeout for OSD operations */
uint64_t s_nextid; /* highest object ID used */ uint64_t s_nextid; /* highest object ID used */

View File

@ -464,7 +464,6 @@ static void exofs_put_super(struct super_block *sb)
sbi->one_comp.obj.partition); sbi->one_comp.obj.partition);
exofs_sysfs_sb_del(sbi); exofs_sysfs_sb_del(sbi);
bdi_destroy(&sbi->bdi);
exofs_free_sbi(sbi); exofs_free_sbi(sbi);
sb->s_fs_info = NULL; sb->s_fs_info = NULL;
} }
@ -809,8 +808,12 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
__sbi_read_stats(sbi); __sbi_read_stats(sbi);
/* set up operation vectors */ /* set up operation vectors */
sbi->bdi.ra_pages = __ra_pages(&sbi->layout); ret = super_setup_bdi(sb);
sb->s_bdi = &sbi->bdi; if (ret) {
EXOFS_DBGMSG("Failed to super_setup_bdi\n");
goto free_sbi;
}
sb->s_bdi->ra_pages = __ra_pages(&sbi->layout);
sb->s_fs_info = sbi; sb->s_fs_info = sbi;
sb->s_op = &exofs_sops; sb->s_op = &exofs_sops;
sb->s_export_op = &exofs_export_ops; sb->s_export_op = &exofs_export_ops;
@ -836,14 +839,6 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
goto free_sbi; goto free_sbi;
} }
ret = bdi_setup_and_register(&sbi->bdi, "exofs");
if (ret) {
EXOFS_DBGMSG("Failed to bdi_setup_and_register\n");
dput(sb->s_root);
sb->s_root = NULL;
goto free_sbi;
}
exofs_sysfs_dbg_print(); exofs_sysfs_dbg_print();
_exofs_print_device("Mounting", opts->dev_name, _exofs_print_device("Mounting", opts->dev_name,
ore_comp_dev(&sbi->oc, 0), ore_comp_dev(&sbi->oc, 0),