ide-cd: use bdev_check_media_changed
authorChristoph Hellwig <hch@lst.de>
Tue, 8 Sep 2020 14:53:40 +0000 (16:53 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 Sep 2020 15:32:31 +0000 (09:32 -0600)
Switch to use bdev_check_media_changed instead of check_disk_change and
call idecd_revalidate_disk manually.  Given that idecd_revalidate_disk
only re-reads the TOC, and we already do the same at probe time, 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>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/ide/ide-cd.c

index 212bb2d..6a38cbc 100644 (file)
@@ -56,6 +56,7 @@ static DEFINE_MUTEX(ide_cd_mutex);
 static DEFINE_MUTEX(idecd_ref_mutex);
 
 static void ide_cd_release(struct device *);
+static int idecd_revalidate_disk(struct gendisk *disk);
 
 static struct cdrom_info *ide_cd_get(struct gendisk *disk)
 {
@@ -1611,7 +1612,8 @@ static int idecd_open(struct block_device *bdev, fmode_t mode)
        struct cdrom_info *info;
        int rc = -ENXIO;
 
-       check_disk_change(bdev);
+       if (bdev_check_media_change(bdev))
+               idecd_revalidate_disk(bdev->bd_disk);
 
        mutex_lock(&ide_cd_mutex);
        info = ide_cd_get(bdev->bd_disk);
@@ -1770,7 +1772,6 @@ static const struct block_device_operations idecd_ops = {
        .compat_ioctl           = IS_ENABLED(CONFIG_COMPAT) ?
                                  idecd_compat_ioctl : NULL,
        .check_events           = idecd_check_events,
-       .revalidate_disk        = idecd_revalidate_disk
 };
 
 /* module options */