[SCSI] Eliminate error handler overload of the SCSI serial number
authorJames Bottomley <James.Bottomley@suse.de>
Wed, 17 Nov 2010 16:10:57 +0000 (10:10 -0600)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 9 Dec 2010 15:41:16 +0000 (09:41 -0600)
commit459dbf72e4d2b4aa13620e6b70d54f098547bf13
treec3cdd3b69a95cba555974a72710a9aaa0b13183a
parent5da61410054d125e63aeab9cc7a11874a69465c0
[SCSI] Eliminate error handler overload of the SCSI serial number

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: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/scsi_error.c
drivers/scsi/scsi_lib.c