Switch to use bdev_check_media_changed instead of check_disk_change and
call floppy_revalidate manually.  Given that floppy_revalidate only
deals with media change events, 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 <h...@lst.de>
---
 drivers/block/swim3.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/block/swim3.c b/drivers/block/swim3.c
index aa77eb5fb7de88..c2d922d125e281 100644
--- a/drivers/block/swim3.c
+++ b/drivers/block/swim3.c
@@ -945,7 +945,8 @@ static int floppy_open(struct block_device *bdev, fmode_t 
mode)
 
        if (err == 0 && (mode & FMODE_NDELAY) == 0
            && (mode & (FMODE_READ|FMODE_WRITE))) {
-               check_disk_change(bdev);
+               if (bdev_check_media_change(bdev))
+                       floppy_revalidate(bdev->bd_disk);
                if (fs->ejected)
                        err = -ENXIO;
        }
@@ -1055,7 +1056,6 @@ static const struct block_device_operations floppy_fops = 
{
        .release        = floppy_release,
        .ioctl          = floppy_ioctl,
        .check_events   = floppy_check_events,
-       .revalidate_disk= floppy_revalidate,
 };
 
 static const struct blk_mq_ops swim3_mq_ops = {
-- 
2.28.0

Reply via email to