All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Christoph Hellwig <hch@lst.de>
Cc: Jens Axboe <axboe@kernel.dk>, Tejun Heo <tj@kernel.org>,
	Jan Kara <jack@suse.cz>,
	linux-block@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	cgroups@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-mm@kvack.org
Subject: Re: [PATCH 5/5] block: remove the bd_bdi in struct block_device
Date: Mon, 9 Aug 2021 17:49:01 +0200	[thread overview]
Message-ID: <20210809154901.GI30319@quack2.suse.cz> (raw)
In-Reply-To: <20210809141744.1203023-6-hch@lst.de>

On Mon 09-08-21 16:17:44, Christoph Hellwig wrote:
> Just retrieve the bdi from the disk.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Looks good to me. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  block/ioctl.c               |  7 ++++---
>  fs/block_dev.c              | 13 +------------
>  fs/nilfs2/super.c           |  2 +-
>  fs/super.c                  |  2 +-
>  fs/xfs/xfs_buf.c            |  2 +-
>  include/linux/backing-dev.h |  2 +-
>  include/linux/blk_types.h   |  1 -
>  7 files changed, 9 insertions(+), 20 deletions(-)
> 
> diff --git a/block/ioctl.c b/block/ioctl.c
> index 0c3a4a53fa11..fff161eaab42 100644
> --- a/block/ioctl.c
> +++ b/block/ioctl.c
> @@ -506,7 +506,7 @@ static int blkdev_common_ioctl(struct block_device *bdev, fmode_t mode,
>  	case BLKFRASET:
>  		if(!capable(CAP_SYS_ADMIN))
>  			return -EACCES;
> -		bdev->bd_bdi->ra_pages = (arg * 512) / PAGE_SIZE;
> +		bdev->bd_disk->bdi->ra_pages = (arg * 512) / PAGE_SIZE;
>  		return 0;
>  	case BLKRRPART:
>  		return blkdev_reread_part(bdev, mode);
> @@ -556,7 +556,8 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd,
>  	case BLKFRAGET:
>  		if (!argp)
>  			return -EINVAL;
> -		return put_long(argp, (bdev->bd_bdi->ra_pages*PAGE_SIZE) / 512);
> +		return put_long(argp,
> +			(bdev->bd_disk->bdi->ra_pages * PAGE_SIZE) / 512);
>  	case BLKGETSIZE:
>  		size = i_size_read(bdev->bd_inode);
>  		if ((size >> 9) > ~0UL)
> @@ -628,7 +629,7 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg)
>  		if (!argp)
>  			return -EINVAL;
>  		return compat_put_long(argp,
> -			       (bdev->bd_bdi->ra_pages * PAGE_SIZE) / 512);
> +			(bdev->bd_disk->bdi->ra_pages * PAGE_SIZE) / 512);
>  	case BLKGETSIZE:
>  		size = i_size_read(bdev->bd_inode);
>  		if ((size >> 9) > ~0UL)
> diff --git a/fs/block_dev.c b/fs/block_dev.c
> index de8c3d9cbdb1..65fc0efca26b 100644
> --- a/fs/block_dev.c
> +++ b/fs/block_dev.c
> @@ -801,7 +801,6 @@ static struct inode *bdev_alloc_inode(struct super_block *sb)
>  	if (!ei)
>  		return NULL;
>  	memset(&ei->bdev, 0, sizeof(ei->bdev));
> -	ei->bdev.bd_bdi = &noop_backing_dev_info;
>  	return &ei->vfs_inode;
>  }
>  
> @@ -826,16 +825,11 @@ static void init_once(void *data)
>  
>  static void bdev_evict_inode(struct inode *inode)
>  {
> -	struct block_device *bdev = &BDEV_I(inode)->bdev;
>  	truncate_inode_pages_final(&inode->i_data);
>  	invalidate_inode_buffers(inode); /* is it needed here? */
>  	clear_inode(inode);
>  	/* Detach inode from wb early as bdi_put() may free bdi->wb */
>  	inode_detach_wb(inode);
> -	if (bdev->bd_bdi != &noop_backing_dev_info) {
> -		bdi_put(bdev->bd_bdi);
> -		bdev->bd_bdi = &noop_backing_dev_info;
> -	}
>  }
>  
>  static const struct super_operations bdev_sops = {
> @@ -1229,11 +1223,8 @@ static int blkdev_get_whole(struct block_device *bdev, fmode_t mode)
>  		}
>  	}
>  
> -	if (!bdev->bd_openers) {
> +	if (!bdev->bd_openers)
>  		set_init_blocksize(bdev);
> -		if (bdev->bd_bdi == &noop_backing_dev_info)
> -			bdev->bd_bdi = bdi_get(disk->bdi);
> -	}
>  	if (test_bit(GD_NEED_PART_SCAN, &disk->state))
>  		bdev_disk_changed(disk, false);
>  	bdev->bd_openers++;
> @@ -1266,8 +1257,6 @@ static int blkdev_get_part(struct block_device *part, fmode_t mode)
>  
>  	disk->open_partitions++;
>  	set_init_blocksize(part);
> -	if (part->bd_bdi == &noop_backing_dev_info)
> -		part->bd_bdi = bdi_get(disk->bdi);
>  done:
>  	part->bd_openers++;
>  	return 0;
> diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
> index 4abd928b0bc8..f6b2d280aab5 100644
> --- a/fs/nilfs2/super.c
> +++ b/fs/nilfs2/super.c
> @@ -1053,7 +1053,7 @@ nilfs_fill_super(struct super_block *sb, void *data, int silent)
>  	sb->s_time_gran = 1;
>  	sb->s_max_links = NILFS_LINK_MAX;
>  
> -	sb->s_bdi = bdi_get(sb->s_bdev->bd_bdi);
> +	sb->s_bdi = bdi_get(sb->s_bdev->bd_disk->bdi);
>  
>  	err = load_nilfs(nilfs, sb);
>  	if (err)
> diff --git a/fs/super.c b/fs/super.c
> index 91b7f156735b..bcef3a6f4c4b 100644
> --- a/fs/super.c
> +++ b/fs/super.c
> @@ -1203,7 +1203,7 @@ static int set_bdev_super(struct super_block *s, void *data)
>  {
>  	s->s_bdev = data;
>  	s->s_dev = s->s_bdev->bd_dev;
> -	s->s_bdi = bdi_get(s->s_bdev->bd_bdi);
> +	s->s_bdi = bdi_get(s->s_bdev->bd_disk->bdi);
>  
>  	if (blk_queue_stable_writes(s->s_bdev->bd_disk->queue))
>  		s->s_iflags |= SB_I_STABLE_WRITES;
> diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
> index 8ff42b3585e0..3ab73567a0f5 100644
> --- a/fs/xfs/xfs_buf.c
> +++ b/fs/xfs/xfs_buf.c
> @@ -844,7 +844,7 @@ xfs_buf_readahead_map(
>  {
>  	struct xfs_buf		*bp;
>  
> -	if (bdi_read_congested(target->bt_bdev->bd_bdi))
> +	if (bdi_read_congested(target->bt_bdev->bd_disk->bdi))
>  		return;
>  
>  	xfs_buf_read_map(target, map, nmaps,
> diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
> index 44df4fcef65c..29530859d9ff 100644
> --- a/include/linux/backing-dev.h
> +++ b/include/linux/backing-dev.h
> @@ -143,7 +143,7 @@ static inline struct backing_dev_info *inode_to_bdi(struct inode *inode)
>  	sb = inode->i_sb;
>  #ifdef CONFIG_BLOCK
>  	if (sb_is_blkdev_sb(sb))
> -		return I_BDEV(inode)->bd_bdi;
> +		return I_BDEV(inode)->bd_disk->bdi;
>  #endif
>  	return sb->s_bdi;
>  }
> diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
> index 290f9061b29a..a6c015cedaf7 100644
> --- a/include/linux/blk_types.h
> +++ b/include/linux/blk_types.h
> @@ -41,7 +41,6 @@ struct block_device {
>  	u8			bd_partno;
>  	spinlock_t		bd_size_lock; /* for bd_inode->i_size updates */
>  	struct gendisk *	bd_disk;
> -	struct backing_dev_info *bd_bdi;
>  
>  	/* The counter of freeze processes */
>  	int			bd_fsfreeze_count;
> -- 
> 2.30.2
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

  parent reply	other threads:[~2021-08-09 15:49 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-09 14:17 move the bdi from the request_queue to the gendisk Christoph Hellwig
2021-08-09 14:17 ` [PATCH 1/5] mm: hide laptop_mode_wb_timer entirely behind the BDI API Christoph Hellwig
2021-08-09 14:17   ` Christoph Hellwig
2021-08-09 14:33   ` Johannes Thumshirn
2021-08-09 14:33     ` Johannes Thumshirn
2021-08-09 15:10   ` Jan Kara
2021-08-09 15:10     ` Jan Kara
2021-08-10 21:56   ` Guenter Roeck
2021-08-10 21:56     ` Guenter Roeck
2021-08-11  5:22     ` Christoph Hellwig
2021-08-11  5:22       ` Christoph Hellwig
2021-08-09 14:17 ` [PATCH 2/5] block: pass a gendisk to blk_queue_update_readahead Christoph Hellwig
2021-08-09 14:17   ` Christoph Hellwig
2021-08-09 14:35   ` Johannes Thumshirn
2021-08-09 15:17   ` Jan Kara
2021-08-09 14:17 ` [PATCH 3/5] block: add a queue_has_disk helper Christoph Hellwig
2021-08-09 14:17   ` Christoph Hellwig
2021-08-09 14:37   ` Johannes Thumshirn
2021-08-09 15:18   ` Jan Kara
2021-08-09 14:17 ` [PATCH 4/5] block: move the bdi from the request_queue to the gendisk Christoph Hellwig
2021-08-09 14:38   ` Johannes Thumshirn
2021-08-09 14:38     ` Johannes Thumshirn
2021-08-09 15:47   ` Jan Kara
2021-08-09 17:57     ` Jens Axboe
2021-08-09 17:57       ` Jens Axboe
2021-08-09 21:29       ` Jan Kara
2021-08-10 16:44     ` Christoph Hellwig
2021-10-14 14:31   ` [sparc64] kernel OOPS (was: [PATCH 4/5] block: move the bdi from the request_queue to the gendisk) Anatoly Pugachev
2021-10-14 14:32     ` Christoph Hellwig
2021-10-14 14:32       ` Christoph Hellwig
2021-10-14 20:27       ` Anatoly Pugachev
2021-08-09 14:17 ` [PATCH 5/5] block: remove the bd_bdi in struct block_device Christoph Hellwig
2021-08-09 14:17   ` Christoph Hellwig
2021-08-09 14:55   ` Johannes Thumshirn
2021-08-09 15:49   ` Jan Kara [this message]
2021-08-09 21:42 ` move the bdi from the request_queue to the gendisk Jens Axboe
2021-08-09 21:42   ` Jens Axboe
2021-08-10 19:36 ` Qian Cai
2021-08-10 19:36   ` Qian Cai
2021-08-10 20:02   ` Christoph Hellwig
2021-08-10 20:02     ` Christoph Hellwig
2021-08-11  2:28     ` Qian Cai
2021-08-11  2:28       ` Qian Cai
2021-08-11 11:25     ` Jan Kara
2021-08-11 11:51       ` Christoph Hellwig
2021-08-11 11:51         ` Christoph Hellwig
2021-08-11 12:47         ` Jan Kara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210809154901.GI30319@quack2.suse.cz \
    --to=jack@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=cgroups@vger.kernel.org \
    --cc=hch@lst.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.