Do not log SCSI command failures that are the result of a transport
layer failure, a SCSI abort or SCSI reset. This patch is a slightly
modified version of a patch posted by Sebastian Riemer in March 2013
(see also http://thread.gmane.org/gmane.linux.drivers.rdma/15020/).

This patch avoids that a system becomes unresponsive during failover
of a large number of LUNs when kernel messages are logged to a serial
console.

Signed-off-by: Sebastian Riemer <[email protected]>
Signed-off-by: Bart Van Assche <[email protected]>
Cc: Sagi Grimberg <[email protected]>
Cc: Roland Dreier <[email protected]>
---
 drivers/infiniband/ulp/srp/ib_srp.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/infiniband/ulp/srp/ib_srp.c 
b/drivers/infiniband/ulp/srp/ib_srp.c
index fba52d2..b3ca4d6 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -827,6 +827,7 @@ static void srp_finish_req(struct srp_target_port *target,
 
        if (scmnd) {
                srp_free_req(target, req, scmnd, 0);
+               scmnd->request->cmd_flags |= REQ_QUIET;
                scmnd->result = result;
                scmnd->scsi_done(scmnd);
        }
@@ -1517,6 +1518,7 @@ static int srp_queuecommand(struct Scsi_Host *shost, 
struct scsi_cmnd *scmnd)
 
        result = srp_chkready(target->rport);
        if (unlikely(result)) {
+               scmnd->request->cmd_flags |= REQ_QUIET;
                scmnd->result = result;
                scmnd->scsi_done(scmnd);
                goto unlock_rport;
@@ -2011,6 +2013,7 @@ static int srp_abort(struct scsi_cmnd *scmnd)
        else
                ret = FAILED;
        srp_free_req(target, req, scmnd, 0);
+       scmnd->request->cmd_flags |= REQ_QUIET;
        scmnd->result = DID_ABORT << 16;
        scmnd->scsi_done(scmnd);
 
-- 
1.8.4.5

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to