diff options
author | Tejun Heo <tj@kernel.org> | 2011-03-09 13:54:28 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2011-03-09 13:54:28 -0500 |
commit | 3a200911ada2d5b955c2c6daa22364c6de83c52c (patch) | |
tree | 412d7e212afd7a149fb59ff5c3c03ac4bc99d3f5 /drivers/block/xsysace.c | |
parent | aaa7c01546d3dc944f5758f671284177131ccce3 (diff) |
xsysace: Convert to bdops->check_events()
Convert from ->media_changed() to ->check_events().
xsysace buffers media changed state and clears it on revalidation. It
will behave correctly with kernel event polling.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Diffstat (limited to 'drivers/block/xsysace.c')
-rw-r--r-- | drivers/block/xsysace.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c index 829161edae53..16a2fa96b810 100644 --- a/drivers/block/xsysace.c +++ b/drivers/block/xsysace.c | |||
@@ -867,12 +867,12 @@ static void ace_request(struct request_queue * q) | |||
867 | } | 867 | } |
868 | } | 868 | } |
869 | 869 | ||
870 | static int ace_media_changed(struct gendisk *gd) | 870 | static unsigned int ace_check_events(struct gendisk *gd, unsigned int clearing) |
871 | { | 871 | { |
872 | struct ace_device *ace = gd->private_data; | 872 | struct ace_device *ace = gd->private_data; |
873 | dev_dbg(ace->dev, "ace_media_changed(): %i\n", ace->media_change); | 873 | dev_dbg(ace->dev, "ace_check_events(): %i\n", ace->media_change); |
874 | 874 | ||
875 | return ace->media_change; | 875 | return ace->media_change ? DISK_EVENT_MEDIA_CHANGE : 0; |
876 | } | 876 | } |
877 | 877 | ||
878 | static int ace_revalidate_disk(struct gendisk *gd) | 878 | static int ace_revalidate_disk(struct gendisk *gd) |
@@ -953,7 +953,7 @@ static const struct block_device_operations ace_fops = { | |||
953 | .owner = THIS_MODULE, | 953 | .owner = THIS_MODULE, |
954 | .open = ace_open, | 954 | .open = ace_open, |
955 | .release = ace_release, | 955 | .release = ace_release, |
956 | .media_changed = ace_media_changed, | 956 | .check_events = ace_check_events, |
957 | .revalidate_disk = ace_revalidate_disk, | 957 | .revalidate_disk = ace_revalidate_disk, |
958 | .getgeo = ace_getgeo, | 958 | .getgeo = ace_getgeo, |
959 | }; | 959 | }; |
@@ -1005,6 +1005,7 @@ static int __devinit ace_setup(struct ace_device *ace) | |||
1005 | ace->gd->major = ace_major; | 1005 | ace->gd->major = ace_major; |
1006 | ace->gd->first_minor = ace->id * ACE_NUM_MINORS; | 1006 | ace->gd->first_minor = ace->id * ACE_NUM_MINORS; |
1007 | ace->gd->fops = &ace_fops; | 1007 | ace->gd->fops = &ace_fops; |
1008 | ace->gd->events = DISK_EVENT_MEDIA_CHANGE; | ||
1008 | ace->gd->queue = ace->queue; | 1009 | ace->gd->queue = ace->queue; |
1009 | ace->gd->private_data = ace; | 1010 | ace->gd->private_data = ace; |
1010 | snprintf(ace->gd->disk_name, 32, "xs%c", ace->id + 'a'); | 1011 | snprintf(ace->gd->disk_name, 32, "xs%c", ace->id + 'a'); |