summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@HansenPartnership.com>2007-12-29 17:59:53 +0100
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-12 01:29:13 +0100
commit2d507a01dac338831266b44ccbb01c69e84606ed (patch)
treeec59ce6bc1ec86e93d1683107d41b5dbce0b370a /drivers/scsi
parent[SCSI] libsas: don't treat underrun as an error on SMP tasks (diff)
downloadlinux-2d507a01dac338831266b44ccbb01c69e84606ed.tar.xz
linux-2d507a01dac338831266b44ccbb01c69e84606ed.zip
[SCSI] libsas, bsg: pass errors through correctly
Currently in BSG, errors returned in req->errors aren't passed back to the calling programme (either via SG_IO or via read/write). Fix this, while preserving the SCSI convention of returning status in req->errors. Now update libsas to return errors correctly instead of to ignore them. Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/scsi_transport_sas.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c
index 87e786daa713..f2149d0bb999 100644
--- a/drivers/scsi/scsi_transport_sas.c
+++ b/drivers/scsi/scsi_transport_sas.c
@@ -173,6 +173,7 @@ static void sas_smp_request(struct request_queue *q, struct Scsi_Host *shost,
handler = to_sas_internal(shost->transportt)->f->smp_handler;
ret = handler(shost, rphy, req);
+ req->errors = ret;
spin_lock_irq(q->queue_lock);