• James Bottomley's avatar
    [SCSI] Eliminate error handler overload of the SCSI serial number · 459dbf72
    James Bottomley authored
    The error handler is using the test cmd->serial_number == 0 in the
    abort routines to signal that the command to be aborted has already
    completed normally.  This design was to close a race window in the
    original error handler where a command could go through the normal
    completion routines after it timed out but before error handling was
    started.
    
    Mike Anderson pointed out that when we converted our timeout and
    softirq completions, we picked up atomicity here because the block
    layer now mediates this with the REQ_ATOM_COMPLETE flag and guarantees
    that *either* the command times out or our done routine is called, but
    ensures we can't get both occurring.  That makes the serial number
    zero check redundant and it can be removed.
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    459dbf72
scsi_lib.c 64.5 KB