• Kai Makisara's avatar
    [SCSI] drivers/scsi/st.c: add reference count and related fixes · f03a5670
    Kai Makisara authored
    I have rediffed the patch against 2.6.13-rc5, done a couple of cosmetic
    cleanups, and run some tests.  Brian King has acknowledged that it fixes the
    problems he has seen. Seems mature enough for inclusion into 2.6.14 (or
    later)?
    
    Nate's explanation of the changes:
    
    I've attached patches against 2.6.13rc2. These are basically identical
    to my earlier patches, as I found that all issues I'd seen in earlier
    kernels still existed in this kernel.
    
    To summarize, the changes are: (more details in my original email)
    
    - add a kref to the scsi_tape structure, and associate reference
    counting stuff
    
    - set sr_request->end_io = blk_end_sync_rq so we get notified when an IO
    is rejected when the device goes away
    
    - check rq_status when IOs complete, else we don't know that IOs
    rejected for a dead device in fact did not complete
    
    - change last_SRpnt so it's set before an async IO is issued (in case
    st_sleep_done is bypassed)
    
    - fix a bogus use of last_SRpnt in st_chk_result
    Signed-off-by: default avatarNate Dailey <nate.dailey@stratus.com>
    Signed-off-by: default avatarKai Makisara <kai.makisara@kolumbus.fi>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    f03a5670
st.c 124 KB