• Vasu Dev's avatar
    [SCSI] libfc: IO errors on link down due to cable unplug · e0d93c5b
    Vasu Dev authored
    In this case, sync IO fails with EIO(5) errors as:-
    
    "Thread:1 System call error:5 - Input/output error (::pwrite() failed)".
    
    This is due to IO time out while libfc doing link down processing
    to block all rports and if timed out IO was at last retry
    attempt then it fails to user with EIO error followed by
    these log messages.
    
    [77848.612169] host2: rport bf0015: Delete port
    [77848.612221] host2: rport e10aef: work delete
    [77848.612232] host2: rport e10002: work event 3
    [77848.612422] sd 2:0:1:1: [sdi] Unhandled error code
    [77848.612426] sd 2:0:1:1: [sdi] Result: hostbyte=DID_ERROR
    driverbyte=DRIVER_OK
    [77848.612431] sd 2:0:1:1: [sdi] CDB: Write(10): 2a 00 00 00 11 20 00 00 20 00
    [77848.612445] end_request: I/O error, dev sdi, sector 4384
    [77848.612553] sd 2:0:1:2: [sdj] Unhandled error code
    
    To fix these EIO errors, such timed out incomplete IOs needs
    to be re-queued without counting retry attempt and this patch
    does that using DID_REQUEUE scsi code.
    Signed-off-by: default avatarVasu Dev <vasu.dev@intel.com>
    Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    e0d93c5b
fc_fcp.c 58.4 KB