Commit cea845cd authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Dan Williams

ext2: cleanup the dax handling in ext2_fill_super

Only call fs_dax_get_by_bdev once the sbi has been allocated and remove
the need for the dax_dev local variable.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDan Williams <dan.j.williams@intel.com>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Link: https://lore.kernel.org/r/20211129102203.2243509-20-hch@lst.deSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent c6f40468
...@@ -802,7 +802,6 @@ static unsigned long descriptor_loc(struct super_block *sb, ...@@ -802,7 +802,6 @@ static unsigned long descriptor_loc(struct super_block *sb,
static int ext2_fill_super(struct super_block *sb, void *data, int silent) static int ext2_fill_super(struct super_block *sb, void *data, int silent)
{ {
struct dax_device *dax_dev = fs_dax_get_by_bdev(sb->s_bdev);
struct buffer_head * bh; struct buffer_head * bh;
struct ext2_sb_info * sbi; struct ext2_sb_info * sbi;
struct ext2_super_block * es; struct ext2_super_block * es;
...@@ -822,17 +821,17 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) ...@@ -822,17 +821,17 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
if (!sbi) if (!sbi)
goto failed; return -ENOMEM;
sbi->s_blockgroup_lock = sbi->s_blockgroup_lock =
kzalloc(sizeof(struct blockgroup_lock), GFP_KERNEL); kzalloc(sizeof(struct blockgroup_lock), GFP_KERNEL);
if (!sbi->s_blockgroup_lock) { if (!sbi->s_blockgroup_lock) {
kfree(sbi); kfree(sbi);
goto failed; return -ENOMEM;
} }
sb->s_fs_info = sbi; sb->s_fs_info = sbi;
sbi->s_sb_block = sb_block; sbi->s_sb_block = sb_block;
sbi->s_daxdev = dax_dev; sbi->s_daxdev = fs_dax_get_by_bdev(sb->s_bdev);
spin_lock_init(&sbi->s_lock); spin_lock_init(&sbi->s_lock);
ret = -EINVAL; ret = -EINVAL;
...@@ -946,7 +945,7 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) ...@@ -946,7 +945,7 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size); blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size);
if (test_opt(sb, DAX)) { if (test_opt(sb, DAX)) {
if (!dax_dev) { if (!sbi->s_daxdev) {
ext2_msg(sb, KERN_ERR, ext2_msg(sb, KERN_ERR,
"DAX unsupported by block device. Turning off DAX."); "DAX unsupported by block device. Turning off DAX.");
clear_opt(sbi->s_mount_opt, DAX); clear_opt(sbi->s_mount_opt, DAX);
...@@ -1201,11 +1200,10 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) ...@@ -1201,11 +1200,10 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
failed_mount: failed_mount:
brelse(bh); brelse(bh);
failed_sbi: failed_sbi:
fs_put_dax(sbi->s_daxdev);
sb->s_fs_info = NULL; sb->s_fs_info = NULL;
kfree(sbi->s_blockgroup_lock); kfree(sbi->s_blockgroup_lock);
kfree(sbi); kfree(sbi);
failed:
fs_put_dax(dax_dev);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment