diff options
| author | Tejun Heo <[email protected]> | 2011-03-09 19:54:28 +0100 | 
|---|---|---|
| committer | Tejun Heo <[email protected]> | 2011-03-09 19:54:28 +0100 | 
| commit | f47350fdecb7ce9fe715e2df4431c4b51c4ef46b (patch) | |
| tree | 60825db09d0bbbf8a12c168b439fcda39e1ca9c3 /drivers/message | |
| parent | 3a200911ada2d5b955c2c6daa22364c6de83c52c (diff) | |
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: Tejun Heo <[email protected]>
Cc: Jens Axboe <[email protected]>
Cc: Kay Sievers <[email protected]>
Cc: Markus Lidel <[email protected]>
Diffstat (limited to 'drivers/message')
| -rw-r--r-- | drivers/message/i2o/i2o_block.c | 11 | 
1 files changed, 7 insertions, 4 deletions
| diff --git a/drivers/message/i2o/i2o_block.c b/drivers/message/i2o/i2o_block.c index ae7cad185898..f81c25d4a125 100644 --- a/drivers/message/i2o/i2o_block.c +++ b/drivers/message/i2o/i2o_block.c @@ -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 + *	@clearing: events being cleared   *   *	Verifies if the media has changed.   *   *	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;  	if (p->media_change_flag) {  		p->media_change_flag = 0; -		return 1; +		return DISK_EVENT_MEDIA_CHANGE;  	}  	return 0;  } @@ -950,7 +952,7 @@ static const struct block_device_operations i2o_block_fops = {  	.ioctl = i2o_block_ioctl,  	.compat_ioctl = i2o_block_ioctl,  	.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)  	gd->major = I2O_MAJOR;  	gd->queue = queue;  	gd->fops = &i2o_block_fops; +	gd->events = DISK_EVENT_MEDIA_CHANGE;  	gd->private_data = dev;  	dev->gd = gd; |