block: Don't implicitly trigger event check on disk_unblock_events()
authorTejun Heo <tj@kernel.org>
Wed, 9 Mar 2011 18:54:27 +0000 (19:54 +0100)
committerTejun Heo <tj@kernel.org>
Wed, 9 Mar 2011 18:54:27 +0000 (19:54 +0100)
Currently, disk_unblock_events() implicitly kick event check if the
block count reaches zero.  This behavior is not described in the
comment and hinders with future changes.  Make the unblocker
explicitly check events by calling disk_check_events() as necessary.

This patch doesn't cause any behavior difference.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Kay Sievers <kay.sievers@vrfy.org>
block/genhd.c
fs/block_dev.c

index 3e2b57b55e3849a115b86def7b77a74b7bf53cf5..c91a2dac6b6b282f5104c781b8f9509dda42f38d 100644 (file)
@@ -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);
 }
 
 /**
index 889287019599a861d90a51d6808cfb2d032fc255..fffdf86c17574862e5fc445bcc4f47cee507d53e 100644 (file)
@@ -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);