From cae0f4096e6956ec18e7f8acba01aa0ea95ed75f Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Sat, 16 Jul 2011 15:00:35 -0400 Subject: [PATCH] --- yaml --- r: 271030 b: refs/heads/master c: ac81c6a832a8769d1cc7ffda361aa3dc3d8f06dc h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/libsas/sas_scsi_host.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 704912f6ef1a..fe2fc264bcde 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a923f756be07aae690ec3dd2e4a25967658cf893 +refs/heads/master: ac81c6a832a8769d1cc7ffda361aa3dc3d8f06dc diff --git a/trunk/drivers/scsi/libsas/sas_scsi_host.c b/trunk/drivers/scsi/libsas/sas_scsi_host.c index 9dd1e9eda19b..d625577ed152 100644 --- a/trunk/drivers/scsi/libsas/sas_scsi_host.c +++ b/trunk/drivers/scsi/libsas/sas_scsi_host.c @@ -207,7 +207,7 @@ int sas_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) task = sas_create_task(cmd, dev, GFP_ATOMIC); if (!task) - return -ENOMEM; + return SCSI_MLQUEUE_HOST_BUSY; /* Queue up, Direct Mode or Task Collector Mode. */ if (sas_ha->lldd_max_execute_num < 2) @@ -223,9 +223,10 @@ int sas_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) SAS_DPRINTK("lldd_execute_task returned: %d\n", res); ASSIGN_SAS_TASK(cmd, NULL); sas_free_task(task); - if (res != -SAS_QUEUE_FULL) - return res; - cmd->result = DID_SOFT_ERROR << 16; /* retry */ + if (res == -SAS_QUEUE_FULL) + cmd->result = DID_SOFT_ERROR << 16; /* retry */ + else + cmd->result = DID_ERROR << 16; out_done: cmd->scsi_done(cmd); return 0;