On Thu 22-02-24 20:45:49, Yu Kuai wrote: > From: Yu Kuai <yukuai3@xxxxxxxxxx> > > Now that all filesystems stash the bdev file, it's ok to get mapping > from the file. > > Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/dir.c | 2 +- > fs/ext4/ext4_jbd2.c | 2 +- > fs/ext4/super.c | 6 +++--- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c > index 3985f8c33f95..0733bc1eec7a 100644 > --- a/fs/ext4/dir.c > +++ b/fs/ext4/dir.c > @@ -192,7 +192,7 @@ static int ext4_readdir(struct file *file, struct dir_context *ctx) > (PAGE_SHIFT - inode->i_blkbits); > if (!ra_has_index(&file->f_ra, index)) > page_cache_sync_readahead( > - sb->s_bdev->bd_inode->i_mapping, > + sb->s_bdev_file->f_mapping, > &file->f_ra, file, > index, 1); > file->f_ra.prev_pos = (loff_t)index << PAGE_SHIFT; > diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c > index 5d8055161acd..dbb9aff07ac1 100644 > --- a/fs/ext4/ext4_jbd2.c > +++ b/fs/ext4/ext4_jbd2.c > @@ -206,7 +206,7 @@ static void ext4_journal_abort_handle(const char *caller, unsigned int line, > > static void ext4_check_bdev_write_error(struct super_block *sb) > { > - struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping; > + struct address_space *mapping = sb->s_bdev_file->f_mapping; > struct ext4_sb_info *sbi = EXT4_SB(sb); > int err; > > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index 2d82b9d4b079..55b3df71bf5e 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -244,7 +244,7 @@ static struct buffer_head *__ext4_sb_bread_gfp(struct super_block *sb, > struct buffer_head *ext4_sb_bread(struct super_block *sb, sector_t block, > blk_opf_t op_flags) > { > - gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping, > + gfp_t gfp = mapping_gfp_constraint(sb->s_bdev_file->f_mapping, > ~__GFP_FS) | __GFP_MOVABLE; > > return __ext4_sb_bread_gfp(sb, block, op_flags, gfp); > @@ -253,7 +253,7 @@ struct buffer_head *ext4_sb_bread(struct super_block *sb, sector_t block, > struct buffer_head *ext4_sb_bread_unmovable(struct super_block *sb, > sector_t block) > { > - gfp_t gfp = mapping_gfp_constraint(sb->s_bdev->bd_inode->i_mapping, > + gfp_t gfp = mapping_gfp_constraint(sb->s_bdev_file->f_mapping, > ~__GFP_FS); > > return __ext4_sb_bread_gfp(sb, block, 0, gfp); > @@ -5560,7 +5560,7 @@ static int __ext4_fill_super(struct fs_context *fc, struct super_block *sb) > * used to detect the metadata async write error. > */ > spin_lock_init(&sbi->s_bdev_wb_lock); > - errseq_check_and_advance(&sb->s_bdev->bd_inode->i_mapping->wb_err, > + errseq_check_and_advance(&sb->s_bdev_file->f_mapping->wb_err, > &sbi->s_bdev_wb_err); > EXT4_SB(sb)->s_mount_state |= EXT4_ORPHAN_FS; > ext4_orphan_cleanup(sb, es); > -- > 2.39.2 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR