On Fri 28-01-22 14:00:17, Christoph Hellwig wrote: > Nothing prevents a file system or userspace opener of the block device > from redirtying the page right afte sync_blockdev returned. Fortunately > data in the page cache during a block device change is mostly harmless > anyway. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > Tested-by: Darrick J. Wong <djwong@xxxxxxxxxx> OK. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > drivers/block/loop.c | 20 -------------------- > 1 file changed, 20 deletions(-) > > diff --git a/drivers/block/loop.c b/drivers/block/loop.c > index 6ec55a5d9dfc4..d3a7f281ce1b6 100644 > --- a/drivers/block/loop.c > +++ b/drivers/block/loop.c > @@ -1278,15 +1278,6 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info) > /* I/O need to be drained during transfer transition */ > blk_mq_freeze_queue(lo->lo_queue); > > - if (size_changed && lo->lo_device->bd_inode->i_mapping->nrpages) { > - /* If any pages were dirtied after invalidate_bdev(), try again */ > - err = -EAGAIN; > - pr_warn("%s: loop%d (%s) has still dirty pages (nrpages=%lu)\n", > - __func__, lo->lo_number, lo->lo_file_name, > - lo->lo_device->bd_inode->i_mapping->nrpages); > - goto out_unfreeze; > - } > - > prev_lo_flags = lo->lo_flags; > > err = loop_set_status_from_info(lo, info); > @@ -1497,21 +1488,10 @@ static int loop_set_block_size(struct loop_device *lo, unsigned long arg) > invalidate_bdev(lo->lo_device); > > blk_mq_freeze_queue(lo->lo_queue); > - > - /* invalidate_bdev should have truncated all the pages */ > - if (lo->lo_device->bd_inode->i_mapping->nrpages) { > - err = -EAGAIN; > - pr_warn("%s: loop%d (%s) has still dirty pages (nrpages=%lu)\n", > - __func__, lo->lo_number, lo->lo_file_name, > - lo->lo_device->bd_inode->i_mapping->nrpages); > - goto out_unfreeze; > - } > - > blk_queue_logical_block_size(lo->lo_queue, arg); > blk_queue_physical_block_size(lo->lo_queue, arg); > blk_queue_io_min(lo->lo_queue, arg); > loop_update_dio(lo); > -out_unfreeze: > blk_mq_unfreeze_queue(lo->lo_queue); > > return err; > -- > 2.30.2 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR