• James Bottomley's avatar
    [SCSI] fix removable device inability to detect disk changes · 32c356d7
    James Bottomley authored
    On Tue, 12 Aug 2008 15:08:14 +0200
    Giuliano Pochini <pochini@shiny.it> wrote:
    
    > Fujitsu magneto-optical drive, Adaptec 29160 and
    > Linux Jay 2.6.26 #7 SMP Sun Aug 10 18:34:22 CEST 2008 ppc 7455, altivec supported PowerMac3,6 GNU/Linux
    >
    > When I insert a disk and I mount it, scsi_test_unit_ready() is called and
    > the do-while loop gets sshdr->sense_key == UNIT_ATTENTION in the first
    > cycle and 0 in the second one. So the if below misses the UNIT_ATTENTION
    > and sdev->changed = 1 is not executed. At this point bad things can
    > happen... I'm not sure how to fix this. Any clue ?
    
    The problem is essentially caused by us eating UNIT_ATTENTION
    conditions in scsi_test_unit_ready().  Fix by updating the ->changed
    flag when this happens if the media is removable.
    
    [pochini@shiny.it: updates to tidy up patch]
    Signed-off-by: default avatarGiuliano Pochini <pochini@shiny.it>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
    32c356d7
scsi_lib.c 66.6 KB