mirror of
https://github.com/SCST-project/scst.git
synced 2026-08-20 14:16:31 +00:00
Merge branch 'svn-trunk'
This commit is contained in:
+35
-49
@@ -261,18 +261,18 @@ static void ft_cmd_done(struct ft_cmd *fcmd)
|
||||
#endif
|
||||
|
||||
if (sp)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
lport->tt.exch_done(sp);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fc_exch_done(sp);
|
||||
#else
|
||||
lport->tt.exch_done(sp);
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
|
||||
if (fr_seq(fp))
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
lport->tt.seq_release(fr_seq(fp));
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fc_seq_release(fr_seq(fp));
|
||||
#else
|
||||
lport->tt.seq_release(fr_seq(fp));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -395,18 +395,18 @@ int ft_send_response(struct scst_cmd *cmd)
|
||||
/*
|
||||
* Send response.
|
||||
*/
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
fcmd->seq = lport->tt.seq_start_next(fcmd->seq);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fcmd->seq = fc_seq_start_next(fcmd->seq);
|
||||
#else
|
||||
fcmd->seq = lport->tt.seq_start_next(fcmd->seq);
|
||||
#endif
|
||||
fc_fill_fc_hdr(fp, FC_RCTL_DD_CMD_STATUS, ep->did, ep->sid, FC_TYPE_FCP,
|
||||
FC_FC_EX_CTX | FC_FC_LAST_SEQ | FC_FC_END_SEQ, 0);
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
error = FCST_INJ_SEND_ERR(lport->tt.seq_send(lport, fcmd->seq, fp));
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
error = FCST_INJ_SEND_ERR(fc_seq_send(lport, fcmd->seq, fp));
|
||||
#else
|
||||
error = FCST_INJ_SEND_ERR(lport->tt.seq_send(lport, fcmd->seq, fp));
|
||||
#endif
|
||||
if (error < 0) {
|
||||
pr_err("Sending response for exchange with OX_ID %#x and RX_ID"
|
||||
@@ -505,17 +505,17 @@ int ft_send_xfer_rdy(struct scst_cmd *cmd)
|
||||
txrdy->ft_data_ro = 0;
|
||||
txrdy->ft_burst_len = htonl(scst_cmd_get_bufflen(cmd));
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
fcmd->seq = lport->tt.seq_start_next(fcmd->seq);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fcmd->seq = fc_seq_start_next(fcmd->seq);
|
||||
#else
|
||||
fcmd->seq = lport->tt.seq_start_next(fcmd->seq);
|
||||
#endif
|
||||
fc_fill_fc_hdr(fp, FC_RCTL_DD_DATA_DESC, ep->did, ep->sid, FC_TYPE_FCP,
|
||||
FC_FC_EX_CTX | FC_FC_END_SEQ | FC_FC_SEQ_INIT, 0);
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
error = FCST_INJ_SEND_ERR(lport->tt.seq_send(lport, fcmd->seq, fp));
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
error = FCST_INJ_SEND_ERR(fc_seq_send(lport, fcmd->seq, fp));
|
||||
#else
|
||||
error = FCST_INJ_SEND_ERR(lport->tt.seq_send(lport, fcmd->seq, fp));
|
||||
#endif
|
||||
switch (error) {
|
||||
case 0:
|
||||
@@ -574,30 +574,22 @@ static void ft_send_resp_status(struct fc_frame *rx_fp, u32 status,
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36)
|
||||
sp = fr_seq(rx_fp);
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
sp = lport->tt.seq_start_next(sp);
|
||||
#else
|
||||
sp = fc_seq_start_next(sp);
|
||||
#endif
|
||||
ep = fc_seq_exch(sp);
|
||||
fc_fill_fc_hdr(fp, FC_RCTL_DD_CMD_STATUS, ep->did, ep->sid, FC_TYPE_FCP,
|
||||
FC_FC_EX_CTX | FC_FC_LAST_SEQ | FC_FC_END_SEQ, 0);
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
lport->tt.seq_send(lport, sp, fp);
|
||||
#else
|
||||
fc_seq_send(lport, sp, fp);
|
||||
#endif
|
||||
out:
|
||||
;
|
||||
#else
|
||||
fc_fill_reply_hdr(fp, rx_fp, FC_RCTL_DD_CMD_STATUS, 0);
|
||||
sp = fr_seq(fp);
|
||||
if (sp)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
lport->tt.seq_send(lport, sp, fp);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fc_seq_send(lport, sp, fp);
|
||||
#else
|
||||
lport->tt.seq_send(lport, sp, fp);
|
||||
#endif
|
||||
else
|
||||
lport->tt.frame_send(lport, fp);
|
||||
@@ -726,10 +718,10 @@ static void ft_recv_cmd(struct ft_sess *sess, struct fc_frame *fp)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36)
|
||||
sp = fr_seq(fp);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
sp = lport->tt.seq_assign(lport, fp);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
sp = fc_seq_assign(lport, fp);
|
||||
#else
|
||||
sp = lport->tt.seq_assign(lport, fp);
|
||||
#endif
|
||||
if (!sp)
|
||||
goto busy;
|
||||
@@ -779,10 +771,10 @@ static void ft_recv_cmd(struct ft_sess *sess, struct fc_frame *fp)
|
||||
cmd->state = FT_STATE_NEW;
|
||||
|
||||
fcmd->seq = sp;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
lport->tt.seq_set_resp(sp, ft_recv_seq, cmd);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fc_seq_set_resp(sp, ft_recv_seq, cmd);
|
||||
#else
|
||||
lport->tt.seq_set_resp(sp, ft_recv_seq, cmd);
|
||||
#endif
|
||||
|
||||
switch (fcp->fc_flags & (FCP_CFL_RDDATA | FCP_CFL_WRDATA)) {
|
||||
@@ -832,10 +824,10 @@ busy:
|
||||
if (fcmd)
|
||||
ft_cmd_done(fcmd);
|
||||
else if (sp)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
lport->tt.exch_done(sp);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fc_exch_done(sp);
|
||||
#else
|
||||
lport->tt.exch_done(sp);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -864,27 +856,21 @@ static void ft_cmd_ls_rjt(struct fc_frame *rx_fp, enum fc_els_rjt_reason reason,
|
||||
rjt->er_reason = reason;
|
||||
rjt->er_explan = explan;
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
sp = lport->tt.seq_start_next(sp);
|
||||
#else
|
||||
sp = fc_seq_start_next(sp);
|
||||
#endif
|
||||
fc_fill_fc_hdr(fp, FC_RCTL_ELS_REP, ep->did, ep->sid, FC_TYPE_FCP,
|
||||
FC_FC_EX_CTX | FC_FC_END_SEQ | FC_FC_LAST_SEQ, 0);
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
lport->tt.seq_send(lport, sp, fp);
|
||||
#else
|
||||
fc_seq_send(lport, sp, fp);
|
||||
#endif
|
||||
#else
|
||||
struct fc_seq_els_data rjt_data;
|
||||
struct fc_lport *lport;
|
||||
|
||||
lport = fr_dev(rx_fp);
|
||||
rjt_data.reason = reason;
|
||||
rjt_data.explan = explan;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
fr_dev(rx_fp)->tt.seq_els_rsp_send(rx_fp, ELS_LS_RJT, &rjt_data);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fc_seq_els_rsp_send(rx_fp, ELS_LS_RJT, &rjt_data);
|
||||
#else
|
||||
lport->tt.seq_els_rsp_send(rx_fp, ELS_LS_RJT, &rjt_data);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
+6
-6
@@ -89,10 +89,10 @@ int ft_send_read_data(struct scst_cmd *cmd)
|
||||
mem_len -= tlen;
|
||||
mem_off = tlen;
|
||||
} else
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
fcmd->seq = lport->tt.seq_start_next(fcmd->seq);
|
||||
#else
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
fcmd->seq = fc_seq_start_next(fcmd->seq);
|
||||
#else
|
||||
fcmd->seq = lport->tt.seq_start_next(fcmd->seq);
|
||||
#endif
|
||||
|
||||
/* no scatter/gather in skb for odd word length due to fc_seq_send() */
|
||||
@@ -179,11 +179,11 @@ int ft_send_read_data(struct scst_cmd *cmd)
|
||||
remaining ? (FC_FC_EX_CTX | FC_FC_REL_OFF) :
|
||||
(FC_FC_EX_CTX | FC_FC_REL_OFF | FC_FC_END_SEQ),
|
||||
fh_off);
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
|
||||
error = FCST_INJ_SEND_ERR(fc_seq_send(lport, fcmd->seq, fp));
|
||||
#else
|
||||
error = FCST_INJ_SEND_ERR(lport->tt.seq_send(lport, fcmd->seq,
|
||||
fp));
|
||||
#else
|
||||
error = FCST_INJ_SEND_ERR(fc_seq_send(lport, fcmd->seq, fp));
|
||||
#endif
|
||||
if (error) {
|
||||
pr_warn("Sending frame with oid %#x oxid %#x resp_len"
|
||||
|
||||
@@ -415,8 +415,7 @@ int target_create(const char *name, struct target **out_target)
|
||||
}
|
||||
|
||||
memset(target, 0, sizeof(*target));
|
||||
strncpy(target->name, name, sizeof(target->name) - 1);
|
||||
target->name[sizeof(target->name)-1] = '\0';
|
||||
strlcpy(target->name, name, sizeof(target->name));
|
||||
|
||||
params_set_defaults(target->target_params, target_keys);
|
||||
params_set_defaults(target->session_params, session_keys);
|
||||
|
||||
+4
-1
@@ -4870,6 +4870,7 @@ static void scst_put_acg_work(struct work_struct *work)
|
||||
void scst_put_acg(struct scst_acg *acg)
|
||||
{
|
||||
struct scst_acg_put_work *put_work;
|
||||
bool rc;
|
||||
|
||||
put_work = kmalloc(sizeof(*put_work), GFP_KERNEL | __GFP_NOFAIL);
|
||||
if (WARN_ON_ONCE(!put_work)) {
|
||||
@@ -4888,7 +4889,9 @@ void scst_put_acg(struct scst_acg *acg)
|
||||
* Schedule the kref_put() call instead of invoking it directly to
|
||||
* avoid deep recursion and a stack overflow.
|
||||
*/
|
||||
WARN_ON_ONCE(!queue_work(scst_release_acg_wq, &put_work->work));
|
||||
rc = queue_work(scst_release_acg_wq, &put_work->work);
|
||||
WARN_ON_ONCE(!rc);
|
||||
return;
|
||||
}
|
||||
|
||||
void scst_get_acg(struct scst_acg *acg)
|
||||
|
||||
Reference in New Issue
Block a user