mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-17 02:31:27 +00:00
ibmvstgt: bug fixes and improvements.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2229 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -400,19 +400,14 @@ static int ibmvstgt_xmit_response(struct scst_cmd *sc)
|
||||
if (dir == DMA_FROM_DEVICE && scst_cmd_get_resp_data_len(sc)) {
|
||||
ret = srp_transfer_data(sc, &vio_iu(iue)->srp.cmd,
|
||||
ibmvstgt_rdma, 1, 1);
|
||||
|
||||
if (ret != SCST_TGT_RES_SUCCESS) {
|
||||
PRINT_ERROR("%s: tag= %llu xfer_data failed",
|
||||
__func__, scst_cmd_get_tag(sc));
|
||||
scst_set_cmd_error(sc,
|
||||
SCST_LOAD_SENSE(scst_sense_read_error));
|
||||
}
|
||||
scst_rx_data(sc, ret ? SCST_RX_STATUS_ERROR
|
||||
: SCST_RX_STATUS_SUCCESS, SCST_CONTEXT_SAME);
|
||||
}
|
||||
|
||||
send_rsp(iue, sc, scst_cmd_get_status(sc), 0);
|
||||
|
||||
out:
|
||||
scst_tgt_cmd_done(sc, SCST_CONTEXT_DIRECT);
|
||||
scst_tgt_cmd_done(sc, SCST_CONTEXT_SAME);
|
||||
|
||||
return SCST_TGT_RES_SUCCESS;
|
||||
}
|
||||
@@ -531,6 +526,13 @@ static void process_login(struct iu_entry *iue)
|
||||
|
||||
snprintf(name, sizeof(name), "%x", vport->dma_dev->unit_address);
|
||||
|
||||
if (!ibmvstgt_is_target_enabled(target->tgt)) {
|
||||
rej->reason = cpu_to_be32(SRP_LOGIN_REJ_INSUFFICIENT_RESOURCES);
|
||||
PRINT_ERROR("rejected SRP_LOGIN_REQ because the target %s"
|
||||
" has not yet been enabled", name);
|
||||
goto reject;
|
||||
}
|
||||
|
||||
BUG_ON(!target);
|
||||
sess = scst_register_session(target->tgt, 0, name, target, NULL, NULL);
|
||||
if (!sess) {
|
||||
|
||||
Reference in New Issue
Block a user