Re: [RFC v4 linux-next 13/19] ext4: prevent direct access of bd_inode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux