diff --git a/block/genhd.c b/block/genhd.c index 3e2b57b55e3849a115b86def7b77a74b7bf53cf5..c91a2dac6b6b282f5104c781b8f9509dda42f38d 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -1494,7 +1494,7 @@ void disk_block_events(struct gendisk *disk) void disk_unblock_events(struct gendisk *disk) { if (disk->ev) - __disk_unblock_events(disk, true); + __disk_unblock_events(disk, false); } /** diff --git a/fs/block_dev.c b/fs/block_dev.c index 889287019599a861d90a51d6808cfb2d032fc255..fffdf86c17574862e5fc445bcc4f47cee507d53e 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1446,6 +1446,7 @@ int blkdev_put(struct block_device *bdev, fmode_t mode) if (bdev_free) { if (bdev->bd_write_holder) { disk_unblock_events(bdev->bd_disk); + disk_check_events(bdev->bd_disk); bdev->bd_write_holder = false; } else disk_check_events(bdev->bd_disk);