[SCSI] libsas: fix sas_queuecommand return values
authorChristoph Hellwig <hch@infradead.org>
Sat, 16 Jul 2011 19:00:35 +0000 (15:00 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 30 Aug 2011 19:13:46 +0000 (12:13 -0700)
commitac81c6a832a8769d1cc7ffda361aa3dc3d8f06dc
treebf1c08af7dbfb37c5e3f9752fb2de96decc2d396
parenta923f756be07aae690ec3dd2e4a25967658cf893
[SCSI] libsas: fix sas_queuecommand return values

->queuecommand must return either 0, or one of the SCSI_MLQUEUE_* return
values.  Non-transient errors are indicated by setting cmd->result before
calling ->scsi_done and returning 0.  Fix libsas to adhere to this calling
convention.  Note that the DID_ERROR for returns from the low-level driver
might not be correct for all cases, but it's the best we can do with
the current layering in libsas.  I also suspect that the pre-existing
handling of -SAS_QUEUE_FULL should really be SCSI_MLQUEUE_HOST_BUSY, but
I'll leave that for a separate change.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/libsas/sas_scsi_host.c