Commit f47350fd authored by Tejun Heo's avatar Tejun Heo

i2o_block: Convert to bdops->check_events()

Convert from ->media_changed() to ->check_events().

i2o_block buffers media changed state and clears it after reporting.
It will behave correctly with kernel event polling.
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
parent 3a200911
...@@ -695,20 +695,22 @@ static int i2o_block_ioctl(struct block_device *bdev, fmode_t mode, ...@@ -695,20 +695,22 @@ static int i2o_block_ioctl(struct block_device *bdev, fmode_t mode,
}; };
/** /**
* i2o_block_media_changed - Have we seen a media change? * i2o_block_check_events - Have we seen a media change?
* @disk: gendisk which should be verified * @disk: gendisk which should be verified
* @clearing: events being cleared
* *
* Verifies if the media has changed. * Verifies if the media has changed.
* *
* Returns 1 if the media was changed or 0 otherwise. * Returns 1 if the media was changed or 0 otherwise.
*/ */
static int i2o_block_media_changed(struct gendisk *disk) static unsigned int i2o_block_check_events(struct gendisk *disk,
unsigned int clearing)
{ {
struct i2o_block_device *p = disk->private_data; struct i2o_block_device *p = disk->private_data;
if (p->media_change_flag) { if (p->media_change_flag) {
p->media_change_flag = 0; p->media_change_flag = 0;
return 1; return DISK_EVENT_MEDIA_CHANGE;
} }
return 0; return 0;
} }
...@@ -950,7 +952,7 @@ static const struct block_device_operations i2o_block_fops = { ...@@ -950,7 +952,7 @@ static const struct block_device_operations i2o_block_fops = {
.ioctl = i2o_block_ioctl, .ioctl = i2o_block_ioctl,
.compat_ioctl = i2o_block_ioctl, .compat_ioctl = i2o_block_ioctl,
.getgeo = i2o_block_getgeo, .getgeo = i2o_block_getgeo,
.media_changed = i2o_block_media_changed .check_events = i2o_block_check_events,
}; };
/** /**
...@@ -1002,6 +1004,7 @@ static struct i2o_block_device *i2o_block_device_alloc(void) ...@@ -1002,6 +1004,7 @@ static struct i2o_block_device *i2o_block_device_alloc(void)
gd->major = I2O_MAJOR; gd->major = I2O_MAJOR;
gd->queue = queue; gd->queue = queue;
gd->fops = &i2o_block_fops; gd->fops = &i2o_block_fops;
gd->events = DISK_EVENT_MEDIA_CHANGE;
gd->private_data = dev; gd->private_data = dev;
dev->gd = gd; dev->gd = gd;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment