Re: [PATCH 04/12] block_dev: only write bdev inode on close

Tejun Heo
2015-01-11T17:32:34Z

Hello,

On Thu, Jan 08, 2015 at 06:45:25PM +0100, Christoph Hellwig wrote:
> Since "bdi: reimplement bdev_inode_switch_bdi()" the block device code

018a17bdc865 ("bdi: reimplement bdev_inode_switch_bdi()") would be
better.

> writes out all dirty data whenever switching the backing_dev_info for
> a block device inode. But a block device inode can only be dirtied
> when it is in use, which means we only have to write it out on the
> final blkdev_put, but not when doing a blkdev_get.
> @@ -1464,9 +1469,11 @@ static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part)
> WARN_ON_ONCE(bdev->bd_holders);
> sync_blockdev(bdev);
> kill_bdev(bdev);
> - /* ->release can cause the old bdi to disappear,
> - * so must switch it out first
> + /*
> + * ->release can cause the queue to disappaear, so flush all
^^^^^
typo
> + * dirty data before.
> */
> + bdev_write_inode(bdev->bd_inode);

Is this an optimization or something necessary for the following
changes? If latter, maybe it's a good idea to state why this is
necessary in the description? Otherwise,

Acked-by: Tejun Heo <tj@kernel.org>

Thanks.

--
tejun