[SCSI] sd: implement sd_check_events()
authorTejun Heo <tj@kernel.org>
Sat, 18 Dec 2010 17:42:23 +0000 (18:42 +0100)
committerJames E.J. Bottomley <James.Bottomley@suse.de>
Tue, 28 Dec 2010 15:03:18 +0000 (09:03 -0600)
commiteface65c336eff420d70beb0fb6787a732e05ffb
tree6e1c17c15b84f6a4b48038606a64b29fe2109633
parentce82ba80477c2cf3576f1e42c4c377e9995633a7
[SCSI] sd: implement sd_check_events()

Replace sd_media_change() with sd_check_events().

* Move media removed logic into set_media_not_present() and
  media_not_present() and set sdev->changed iff an existing media is
  removed or the device indicates UNIT_ATTENTION.

* Make sd_check_events() sets sdev->changed if previously missing
  media becomes present.

* Event is reported only if sdev->changed is set.

This makes media presence event reported if scsi_disk->media_present
actually changed or the device indicated UNIT_ATTENTION.  For backward
compatibility, SDEV_EVT_MEDIA_CHANGE is generated each time
sd_check_events() detects media change event.

[jejb: fix boot failure]
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Jens Axboe <jaxboe@fusionio.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/sd.c
drivers/scsi/sd.h