Export fc_bsg_jobdone so drivers can use it directly instead of doing
the round-trip via struct fc_bsg_job::job_done() and use it in the LLDDs.
As we've converted all LLDDs over to use fc_bsg_jobdone() directly,
we can remove the function pointer from struct fc_bsg_job as well.
Signed-off-by: Johannes Thumshirn
Reviewed-by: Hannes Reinecke
---
drivers/s390/scsi/zfcp_fc.c | 2 +-
drivers/scsi/bfa/bfad_bsg.c | 4 ++--
drivers/scsi/ibmvscsi/ibmvfc.c | 2 +-
drivers/scsi/libfc/fc_lport.c| 4 ++--
drivers/scsi/lpfc/lpfc_bsg.c | 38 +-
drivers/scsi/qla2xxx/qla_bsg.c | 44
drivers/scsi/scsi_transport_fc.c | 5 ++---
include/scsi/scsi_transport_fc.h | 2 +-
8 files changed, 50 insertions(+), 51 deletions(-)
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c
index 4c4023f..40d8f06 100644
--- a/drivers/s390/scsi/zfcp_fc.c
+++ b/drivers/s390/scsi/zfcp_fc.c
@@ -892,7 +892,7 @@ static void zfcp_fc_ct_els_job_handler(void *data)
jr->reply_payload_rcv_len = job->reply_payload.payload_len;
jr->reply_data.ctels_reply.status = FC_CTELS_STATUS_OK;
jr->result = zfcp_ct_els->status ? -EIO : 0;
- job->job_done(job);
+ fc_bsg_jobdone(job);
}
static struct zfcp_fc_wka_port *zfcp_fc_job_wka_port(struct fc_bsg_job *job)
diff --git a/drivers/scsi/bfa/bfad_bsg.c b/drivers/scsi/bfa/bfad_bsg.c
index 48366d8..25889b9 100644
--- a/drivers/scsi/bfa/bfad_bsg.c
+++ b/drivers/scsi/bfa/bfad_bsg.c
@@ -3180,7 +3180,7 @@
bsg_reply->reply_payload_rcv_len = job->reply_payload.payload_len;
bsg_reply->result = rc;
- job->job_done(job);
+ fc_bsg_jobdone(job);
return rc;
error:
/* free the command buffer */
@@ -3556,7 +3556,7 @@ struct bfad_buf_info *
bsg_reply->result = rc;
if (rc == BFA_STATUS_OK)
- job->job_done(job);
+ fc_bsg_jobdone(job);
return rc;
}
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
index 7c17a7e..f14e9c1 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -1945,7 +1945,7 @@ static int ibmvfc_bsg_request(struct fc_bsg_job *job)
ibmvfc_free_event(evt);
spin_unlock_irqrestore(vhost->host->host_lock, flags);
bsg_reply->result = rc;
- job->job_done(job);
+ fc_bsg_jobdone(job);
rc = 0;
out:
dma_unmap_sg(vhost->dev, job->request_payload.sg_list,
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index 23bb114..33e2881 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -1917,7 +1917,7 @@ static void fc_lport_bsg_resp(struct fc_seq *sp, struct
fc_frame *fp,
-ECONNABORTED : -ETIMEDOUT;
job->reply_len = sizeof(uint32_t);
job->state_flags |= FC_RQST_STATE_DONE;
- job->job_done(job);
+ fc_bsg_jobdone(job);
kfree(info);
return;
}
@@ -1952,7 +1952,7 @@ static void fc_lport_bsg_resp(struct fc_seq *sp, struct
fc_frame *fp,
job->reply_payload.payload_len;
bsg_reply->result = 0;
job->state_flags |= FC_RQST_STATE_DONE;
- job->job_done(job);
+ fc_bsg_jobdone(job);
kfree(info);
}
fc_frame_free(fp);
diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
index 27b5930..1db9cca 100644
--- a/drivers/scsi/lpfc/lpfc_bsg.c
+++ b/drivers/scsi/lpfc/lpfc_bsg.c
@@ -371,7 +371,7 @@ struct lpfc_dmabufext {
if (job) {
bsg_reply->result = rc;
- job->job_done(job);
+ fc_bsg_jobdone(job);
}
return;
}
@@ -644,7 +644,7 @@ struct lpfc_dmabufext {
if (job) {
bsg_reply->result = rc;
- job->job_done(job);
+ fc_bsg_jobdone(job);
}
return;
}
@@ -1136,7 +1136,7 @@ struct lpfc_dmabufext {
job->dd_data = NULL;
/* complete the job back to userspace */
spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
- job->job_done(job);
+ fc_bsg_jobdone(job);
spin_lock_irqsave(&phba->ct_ev_lock, flags);
}
}
@@ -1361,7 +1361,7 @@ struct lpfc_dmabufext {
spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
job->dd_data = NULL;
bsg_reply->result = 0;
- job->job_done(job);
+ fc_bsg_jobdone(job);
return 0;
job_error:
@@ -1458,7 +1458,7 @@ struct lpfc_dmabufext {
if (job) {
bsg_reply->result = rc;
- job->job_done(job);
+ fc_bsg_jobdone(job);
}
return;
}
@@ -1886,7 +1886,7 @@ struct lpfc_dmabuf