diff options
author | James Bottomley <James.Bottomley@suse.de> | 2010-11-17 10:10:57 -0600 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-12-09 09:41:16 -0600 |
commit | 459dbf72e4d2b4aa13620e6b70d54f098547bf13 (patch) | |
tree | c3cdd3b69a95cba555974a72710a9aaa0b13183a /drivers/scsi/scsi_lib.c | |
parent | 5da61410054d125e63aeab9cc7a11874a69465c0 (diff) | |
download | linux-459dbf72e4d2b4aa13620e6b70d54f098547bf13.tar.bz2 |
[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>
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r-- | drivers/scsi/scsi_lib.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index eafeeda6e194..5b6bbaea59fe 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -1403,11 +1403,6 @@ static void scsi_softirq_done(struct request *rq) INIT_LIST_HEAD(&cmd->eh_entry); - /* - * Set the serial numbers back to zero - */ - cmd->serial_number = 0; - atomic_inc(&cmd->device->iodone_cnt); if (cmd->result) atomic_inc(&cmd->device->ioerr_cnt); |