sd: open code revalidate_disk
authorChristoph Hellwig <hch@lst.de>
Tue, 1 Sep 2020 15:57:46 +0000 (17:57 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 2 Sep 2020 14:00:07 +0000 (08:00 -0600)
Instead of calling revalidate_disk just do the work directly by
calling sd_revalidate_disk, and revalidate_disk_size where needed.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/scsi/sd.c

index 95018e6..2bec8cd 100644 (file)
@@ -217,7 +217,7 @@ cache_type_store(struct device *dev, struct device_attribute *attr,
                        sd_print_sense_hdr(sdkp, &sshdr);
                return -EINVAL;
        }
-       revalidate_disk(sdkp->disk);
+       sd_revalidate_disk(sdkp->disk);
        return count;
 }
 
@@ -1706,8 +1706,10 @@ static int sd_sync_cache(struct scsi_disk *sdkp, struct scsi_sense_hdr *sshdr)
 static void sd_rescan(struct device *dev)
 {
        struct scsi_disk *sdkp = dev_get_drvdata(dev);
+       int ret;
 
-       revalidate_disk(sdkp->disk);
+       ret = sd_revalidate_disk(sdkp->disk);
+       revalidate_disk_size(sdkp->disk, ret == 0);
 }
 
 static int sd_ioctl(struct block_device *bdev, fmode_t mode,