diff mbox series

[16/19] sd: use bdev_check_media_change

Message ID 20200902141218.212614-17-hch@lst.de
State Not Applicable
Delegated to: David Miller
Headers show
Series [01/19] block: add a bdev_check_media_change helper | expand

Commit Message

Christoph Hellwig Sept. 2, 2020, 2:12 p.m. UTC
Switch to use bdev_check_media_change instead of check_disk_change and
call cd_revalidate_disk manually.  As sd also calls sd_revalidate_disk
manually during probe and open, , the extra call into ->revalidate_disk
from bdev_disk_changed is not required either, so stop wiring up the
method.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/scsi/sd.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Johannes Thumshirn Sept. 2, 2020, 3:51 p.m. UTC | #1
On 02/09/2020 16:21, Christoph Hellwig wrote:
> call cd_revalidate_disk manually.  As sd also calls sd_revalidate_disk
        ^~ sd_revalidate_disk

Otherwise,
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Sergey Shtylyov Sept. 2, 2020, 4:19 p.m. UTC | #2
On 9/2/20 5:12 PM, Christoph Hellwig wrote:

> Switch to use bdev_check_media_change instead of check_disk_change and
> call cd_revalidate_disk manually.  As sd also calls sd_revalidate_disk

   s/cd/sd/?

> manually during probe and open, , the extra call into ->revalidate_disk
> from bdev_disk_changed is not required either, so stop wiring up the
> method.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  drivers/scsi/sd.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
> index 2bec8cd526164d..d020639c28c6ca 100644
> --- a/drivers/scsi/sd.c
> +++ b/drivers/scsi/sd.c
> @@ -1381,8 +1381,10 @@ static int sd_open(struct block_device *bdev, fmode_t mode)
>  	if (!scsi_block_when_processing_errors(sdev))
>  		goto error_out;
>  
> -	if (sdev->removable || sdkp->write_prot)
> -		check_disk_change(bdev);
> +	if (sdev->removable || sdkp->write_prot) {
> +		if (bdev_check_media_change(bdev))
> +			sd_revalidate_disk(bdev->bd_disk);
> +	}
>  
>  	/*
>  	 * If the drive is empty, just let the open fail.
[...]

MBR, Sergei
diff mbox series

Patch

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 2bec8cd526164d..d020639c28c6ca 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1381,8 +1381,10 @@  static int sd_open(struct block_device *bdev, fmode_t mode)
 	if (!scsi_block_when_processing_errors(sdev))
 		goto error_out;
 
-	if (sdev->removable || sdkp->write_prot)
-		check_disk_change(bdev);
+	if (sdev->removable || sdkp->write_prot) {
+		if (bdev_check_media_change(bdev))
+			sd_revalidate_disk(bdev->bd_disk);
+	}
 
 	/*
 	 * If the drive is empty, just let the open fail.
@@ -1843,7 +1845,6 @@  static const struct block_device_operations sd_fops = {
 	.compat_ioctl		= sd_compat_ioctl,
 #endif
 	.check_events		= sd_check_events,
-	.revalidate_disk	= sd_revalidate_disk,
 	.unlock_native_capacity	= sd_unlock_native_capacity,
 	.report_zones		= sd_zbc_report_zones,
 	.pr_ops			= &sd_pr_ops,