@@ -3878,7 +3878,6 @@ static void ext4_setup_csum_trigger(struct super_block *sb,
3878
3878
3879
3879
static int ext4_fill_super (struct super_block * sb , void * data , int silent )
3880
3880
{
3881
- struct dax_device * dax_dev = fs_dax_get_by_bdev (sb -> s_bdev );
3882
3881
char * orig_data = kstrdup (data , GFP_KERNEL );
3883
3882
struct buffer_head * bh , * * group_desc ;
3884
3883
struct ext4_super_block * es = NULL ;
@@ -3909,12 +3908,12 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
3909
3908
if ((data && !orig_data ) || !sbi )
3910
3909
goto out_free_base ;
3911
3910
3912
- sbi -> s_daxdev = dax_dev ;
3913
3911
sbi -> s_blockgroup_lock =
3914
3912
kzalloc (sizeof (struct blockgroup_lock ), GFP_KERNEL );
3915
3913
if (!sbi -> s_blockgroup_lock )
3916
3914
goto out_free_base ;
3917
3915
3916
+ sbi -> s_daxdev = fs_dax_get_by_bdev (sb -> s_bdev );
3918
3917
sb -> s_fs_info = sbi ;
3919
3918
sbi -> s_sb = sb ;
3920
3919
sbi -> s_inode_readahead_blks = EXT4_DEF_INODE_READAHEAD_BLKS ;
@@ -4299,7 +4298,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
4299
4298
goto failed_mount ;
4300
4299
}
4301
4300
4302
- if (dax_dev ) {
4301
+ if (sbi -> s_daxdev ) {
4303
4302
if (blocksize == PAGE_SIZE )
4304
4303
set_bit (EXT4_FLAGS_BDEV_IS_DAX , & sbi -> s_ext4_flags );
4305
4304
else
@@ -5095,10 +5094,10 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
5095
5094
out_fail :
5096
5095
sb -> s_fs_info = NULL ;
5097
5096
kfree (sbi -> s_blockgroup_lock );
5097
+ fs_put_dax (sbi -> s_daxdev );
5098
5098
out_free_base :
5099
5099
kfree (sbi );
5100
5100
kfree (orig_data );
5101
- fs_put_dax (dax_dev );
5102
5101
return err ? err : ret ;
5103
5102
}
5104
5103
0 commit comments