[SCSI] sd: implement sd_check_events()
authorTejun Heo <tj@kernel.org>
Sat, 18 Dec 2010 17:42:23 +0000 (18:42 +0100)
committerJames Bottomley <James.Bottomley@suse.de>
Fri, 14 Jan 2011 15:17:34 +0000 (09:17 -0600)
commit2bae0093cab4ee0a7a8728fdfc35b74569350863
treec80ef5a2f293ef01f72561535f476955a465ddba
parent52cfd503ad7176d23a5dd7af3981744feb60622f
[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