• Tejun Heo's avatar
    scsi: replace sr_test_unit_ready() with scsi_test_unit_ready() · 9f8a2c23
    Tejun Heo authored
    The usage of TUR has been confusing involving several different
    commits updating different parts over time.  Currently, the only
    differences between scsi_test_unit_ready() and sr_test_unit_ready()
    are,
    
    * scsi_test_unit_ready() also sets sdev->changed on NOT_READY.
    
    * scsi_test_unit_ready() returns 0 if TUR ended with UNIT_ATTENTION or
      NOT_READY.
    
    Due to the above two differences, sr is using its own
    sr_test_unit_ready(), but sd - the sole user of the above extra
    handling - doesn't even need them.
    
    Where scsi_test_unit_ready() is used in sd_media_changed(), the code
    is looking for device ready w/ media present state which is true iff
    TUR succeeds w/o sense data or UA, and when the device is not ready
    for whatever reason sd_media_changed() explicitly marks media as
    missing so there's no reason to set sdev->changed automatically from
    scsi_test_unit_ready() on NOT_READY.
    
    Drop both special handlings from scsi_test_unit_ready(), which makes
    it equivalant to sr_test_unit_ready(), and replace
    sr_test_unit_ready() with scsi_test_unit_ready().  Also, drop the
    unnecessary explicit NOT_READY check from sd_media_changed().
    Checking return value is enough for testing device readiness.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
    9f8a2c23
sr_ioctl.c 15.1 KB