Re: [PATCH 5/6] block: dasd_genhd: convert to blkdev_reread_part

Jarod Wilson
2015-04-06T13:51:34Z

On Mon, Apr 06, 2015 at 09:46:55AM -0400, Jarod Wilson wrote:
> On Sun, Apr 05, 2015 at 03:24:47PM +0800, Ming Lei wrote:
> > Also remove the obsolete comment.
> >
> > Signed-off-by: Ming Lei <ming.lei@canonical.com>
> > ---
> > drivers/s390/block/dasd_genhd.c | 9 +++------
> > 1 file changed, 3 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c
> > index 90f39f7..2af4619 100644
> > --- a/drivers/s390/block/dasd_genhd.c
> > +++ b/drivers/s390/block/dasd_genhd.c
> > @@ -116,14 +116,11 @@ int dasd_scan_partitions(struct dasd_block *block)
> > rc);
> > return -ENODEV;
> > }
> > - /*
> > - * See fs/partition/check.c:register_disk,rescan_partitions
> > - * Can't call rescan_partitions directly. Use ioctl.
> > - */
> > - rc = ioctl_by_bdev(bdev, BLKRRPART, 0);
> > +
> > + rc = blkdev_reread_part(bdev);
> > while (rc == -EBUSY && retry > 0) {
> > schedule();
> > - rc = ioctl_by_bdev(bdev, BLKRRPART, 0);
> > + rc = blkdev_reread_part(bdev);
> > retry--;
> > DBF_DEV_EVENT(DBF_ERR, block->base,
> > "scan partitions error, retry %d rc %d",
>
> Note: patch 6/6 in the series makes this whole while() loops pointless,
> since the possibility of the -EBUSY return goes away.

Minor clarification: the -EBUSY due to the trylock, which is why that
retry loop exists, goes away. You *could* still get an -EBUSY through
blkdev_reread_part()->rescan_partitions()->drop_partitions() if
bdev->bd_part_count is non-zero.

--
Jarod Wilson
jarod@redhat.com