On Wed 15-05-19 08:57:40, Jan Kara wrote: > When hidden gendisk is revalidated, there's no point in revalidating > associated block device as there's none. We would thus just create new > bdev inode, report "detected capacity change from 0 to XXX" message and > evict the bdev inode again. Avoid this pointless dance and confusing > message in the kernel log. > > Signed-off-by: Jan Kara <jack@xxxxxxx> Jens, ping? Honza > --- > fs/block_dev.c | 25 ++++++++++++++++--------- > 1 file changed, 16 insertions(+), 9 deletions(-) > > diff --git a/fs/block_dev.c b/fs/block_dev.c > index 0f7552a87d54..9e671bbf7362 100644 > --- a/fs/block_dev.c > +++ b/fs/block_dev.c > @@ -1405,20 +1405,27 @@ void check_disk_size_change(struct gendisk *disk, struct block_device *bdev, > */ > int revalidate_disk(struct gendisk *disk) > { > - struct block_device *bdev; > int ret = 0; > > if (disk->fops->revalidate_disk) > ret = disk->fops->revalidate_disk(disk); > - bdev = bdget_disk(disk, 0); > - if (!bdev) > - return ret; > > - mutex_lock(&bdev->bd_mutex); > - check_disk_size_change(disk, bdev, ret == 0); > - bdev->bd_invalidated = 0; > - mutex_unlock(&bdev->bd_mutex); > - bdput(bdev); > + /* > + * Hidden disks don't have associated bdev so there's no point in > + * revalidating it. > + */ > + if (!(disk->flags & GENHD_FL_HIDDEN)) { > + struct block_device *bdev = bdget_disk(disk, 0); > + > + if (!bdev) > + return ret; > + > + mutex_lock(&bdev->bd_mutex); > + check_disk_size_change(disk, bdev, ret == 0); > + bdev->bd_invalidated = 0; > + mutex_unlock(&bdev->bd_mutex); > + bdput(bdev); > + } > return ret; > } > EXPORT_SYMBOL(revalidate_disk); > -- > 2.16.4 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR