[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <4a88b902ff8b37efcdfb6439d10555701e170a40.1479374720.git.jthumshirn@suse.de>
Date: Thu, 17 Nov 2016 10:31:16 +0100
From: Johannes Thumshirn <jthumshirn@...e.de>
To: James Bottomley <jejb@...ux.vnet.ibm.com>,
"Martin K . Petersen" <martin.petersen@...cle.com>
Cc: Hannes Reinecke <hare@...e.de>,
Christoph Hellwig <hch@...radead.org>,
Johannes Thumshirn <jthumshirn@...e.de>,
Johannes Thumshirn <jth@...nel.org>,
fcoe-devel@...n-fcoe.org (open list:FCOE SUBSYSTEM (libfc, libfcoe,
fcoe)), linux-scsi@...r.kernel.org (open list:SCSI SUBSYSTEM),
linux-kernel@...r.kernel.org (open list)
Subject: [PATCH v4 06/15] scsi: libfc: don't set FC_RQST_STATE_DONE before calling fc_bsg_jobdone()
Don't set FC_RQST_STATE_DONE before calling fc_bsg_jobdone() as
fc_bsg_jobdone() calls blk_complete_requeust() which raises a soft-IRQ that
ends up in fc_bsg_sofirq_done() and fc_bsg_softirq_done() sets the
FC_RQST_STATE_DONE flag.
Signed-off-by: Johannes Thumshirn <jthumshirn@...e.de>
Reviewed-by: Hannes Reinecke <hare@...e.com>
---
drivers/scsi/libfc/fc_lport.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index 5e24ca3..cc98ebc 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -1912,7 +1912,6 @@ static void fc_lport_bsg_resp(struct fc_seq *sp, struct fc_frame *fp,
bsg_reply->result = (PTR_ERR(fp) == -FC_EX_CLOSED) ?
-ECONNABORTED : -ETIMEDOUT;
job->reply_len = sizeof(uint32_t);
- job->state_flags |= FC_RQST_STATE_DONE;
fc_bsg_jobdone(job, bsg_reply->result,
bsg_reply->reply_payload_rcv_len);
kfree(info);
@@ -1948,7 +1947,6 @@ static void fc_lport_bsg_resp(struct fc_seq *sp, struct fc_frame *fp,
bsg_reply->reply_payload_rcv_len =
job->reply_payload.payload_len;
bsg_reply->result = 0;
- job->state_flags |= FC_RQST_STATE_DONE;
fc_bsg_jobdone(job, bsg_reply->result,
bsg_reply->reply_payload_rcv_len);
kfree(info);
--
1.8.5.6
Powered by blists - more mailing lists