diff options
author | Roland Dreier <roland@purestorage.com> | 2012-07-16 14:04:38 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-07-16 20:35:26 -0400 |
commit | 7c78b8de267cc4bc63c4f95bda694be606c3644d (patch) | |
tree | 03b7c8a8ee230eb0a7764a903e3f694f8122b40c /drivers/target/sbp | |
parent | 669ab62c9d045bd2ff647f39e9e7a088e7e8706a (diff) |
sbp-target: Consolidate duplicated error path code in sbp_handle_command()
Cc: Chris Boot <bootc@bootc.net>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/target/sbp')
-rw-r--r-- | drivers/target/sbp/sbp_target.c | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c index 0848c4ca2a32..e10e6223e96c 100644 --- a/drivers/target/sbp/sbp_target.c +++ b/drivers/target/sbp/sbp_target.c | |||
@@ -1219,28 +1219,14 @@ static void sbp_handle_command(struct sbp_target_request *req) | |||
1219 | ret = sbp_fetch_command(req); | 1219 | ret = sbp_fetch_command(req); |
1220 | if (ret) { | 1220 | if (ret) { |
1221 | pr_debug("sbp_handle_command: fetch command failed: %d\n", ret); | 1221 | pr_debug("sbp_handle_command: fetch command failed: %d\n", ret); |
1222 | req->status.status |= cpu_to_be32( | 1222 | goto err; |
1223 | STATUS_BLOCK_RESP(STATUS_RESP_TRANSPORT_FAILURE) | | ||
1224 | STATUS_BLOCK_DEAD(0) | | ||
1225 | STATUS_BLOCK_LEN(1) | | ||
1226 | STATUS_BLOCK_SBP_STATUS(SBP_STATUS_UNSPECIFIED_ERROR)); | ||
1227 | sbp_send_status(req); | ||
1228 | sbp_free_request(req); | ||
1229 | return; | ||
1230 | } | 1223 | } |
1231 | 1224 | ||
1232 | ret = sbp_fetch_page_table(req); | 1225 | ret = sbp_fetch_page_table(req); |
1233 | if (ret) { | 1226 | if (ret) { |
1234 | pr_debug("sbp_handle_command: fetch page table failed: %d\n", | 1227 | pr_debug("sbp_handle_command: fetch page table failed: %d\n", |
1235 | ret); | 1228 | ret); |
1236 | req->status.status |= cpu_to_be32( | 1229 | goto err; |
1237 | STATUS_BLOCK_RESP(STATUS_RESP_TRANSPORT_FAILURE) | | ||
1238 | STATUS_BLOCK_DEAD(0) | | ||
1239 | STATUS_BLOCK_LEN(1) | | ||
1240 | STATUS_BLOCK_SBP_STATUS(SBP_STATUS_UNSPECIFIED_ERROR)); | ||
1241 | sbp_send_status(req); | ||
1242 | sbp_free_request(req); | ||
1243 | return; | ||
1244 | } | 1230 | } |
1245 | 1231 | ||
1246 | unpacked_lun = req->login->lun->unpacked_lun; | 1232 | unpacked_lun = req->login->lun->unpacked_lun; |
@@ -1252,6 +1238,16 @@ static void sbp_handle_command(struct sbp_target_request *req) | |||
1252 | target_submit_cmd(&req->se_cmd, sess->se_sess, req->cmd_buf, | 1238 | target_submit_cmd(&req->se_cmd, sess->se_sess, req->cmd_buf, |
1253 | req->sense_buf, unpacked_lun, data_length, | 1239 | req->sense_buf, unpacked_lun, data_length, |
1254 | MSG_SIMPLE_TAG, data_dir, 0); | 1240 | MSG_SIMPLE_TAG, data_dir, 0); |
1241 | return; | ||
1242 | |||
1243 | err: | ||
1244 | req->status.status |= cpu_to_be32( | ||
1245 | STATUS_BLOCK_RESP(STATUS_RESP_TRANSPORT_FAILURE) | | ||
1246 | STATUS_BLOCK_DEAD(0) | | ||
1247 | STATUS_BLOCK_LEN(1) | | ||
1248 | STATUS_BLOCK_SBP_STATUS(SBP_STATUS_UNSPECIFIED_ERROR)); | ||
1249 | sbp_send_status(req); | ||
1250 | sbp_free_request(req); | ||
1255 | } | 1251 | } |
1256 | 1252 | ||
1257 | /* | 1253 | /* |