aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_fsf.c
diff options
context:
space:
mode:
authorMartin Peschke <mp3@de.ibm.com>2008-03-27 09:22:02 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-04-07 13:19:04 -0400
commit698ec01635819c5ae60090bb4efcbeffc41642fb (patch)
tree8800461be45c3efa65558441a3d049fd0a38bf52 /drivers/s390/scsi/zfcp_fsf.c
parent348447e85749120ad600a5c8e23b6bb7058b931d (diff)
[SCSI] zfcp: Add traces for state changes.
This patch writes a trace record which provides information about state changes for adapters, ports and units, e.g. target failure, targets becoming online, targets being temporarily blocked due to pending recovery, targets which have been recovered successfully etc. Signed-off-by: Martin Peschke <mp3@de.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_fsf.c')
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c70
1 files changed, 36 insertions, 34 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 264f5f1bdde6..2b7ddb78767c 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -46,7 +46,7 @@ static int zfcp_fsf_req_send(struct zfcp_fsf_req *);
46static int zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *); 46static int zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *);
47static int zfcp_fsf_fsfstatus_eval(struct zfcp_fsf_req *); 47static int zfcp_fsf_fsfstatus_eval(struct zfcp_fsf_req *);
48static int zfcp_fsf_fsfstatus_qual_eval(struct zfcp_fsf_req *); 48static int zfcp_fsf_fsfstatus_qual_eval(struct zfcp_fsf_req *);
49static void zfcp_fsf_link_down_info_eval(struct zfcp_adapter *, 49static void zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *, u8,
50 struct fsf_link_down_info *); 50 struct fsf_link_down_info *);
51static int zfcp_fsf_req_dispatch(struct zfcp_fsf_req *); 51static int zfcp_fsf_req_dispatch(struct zfcp_fsf_req *);
52 52
@@ -342,7 +342,7 @@ zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *fsf_req)
342 break; 342 break;
343 343
344 case FSF_PROT_LINK_DOWN: 344 case FSF_PROT_LINK_DOWN:
345 zfcp_fsf_link_down_info_eval(adapter, 345 zfcp_fsf_link_down_info_eval(fsf_req, 37,
346 &prot_status_qual->link_down_info); 346 &prot_status_qual->link_down_info);
347 zfcp_erp_adapter_reopen(adapter, 0); 347 zfcp_erp_adapter_reopen(adapter, 0);
348 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 348 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -354,8 +354,8 @@ zfcp_fsf_protstatus_eval(struct zfcp_fsf_req *fsf_req)
354 "Re-starting operations on this adapter.\n", 354 "Re-starting operations on this adapter.\n",
355 zfcp_get_busid_by_adapter(adapter)); 355 zfcp_get_busid_by_adapter(adapter));
356 /* All ports should be marked as ready to run again */ 356 /* All ports should be marked as ready to run again */
357 zfcp_erp_modify_adapter_status(adapter, 357 zfcp_erp_modify_adapter_status(adapter, 28,
358 ZFCP_STATUS_COMMON_RUNNING, 358 0, ZFCP_STATUS_COMMON_RUNNING,
359 ZFCP_SET); 359 ZFCP_SET);
360 zfcp_erp_adapter_reopen(adapter, 360 zfcp_erp_adapter_reopen(adapter,
361 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED 361 ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED
@@ -506,9 +506,11 @@ zfcp_fsf_fsfstatus_qual_eval(struct zfcp_fsf_req *fsf_req)
506 * zfcp_fsf_link_down_info_eval - evaluate link down information block 506 * zfcp_fsf_link_down_info_eval - evaluate link down information block
507 */ 507 */
508static void 508static void
509zfcp_fsf_link_down_info_eval(struct zfcp_adapter *adapter, 509zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *fsf_req, u8 id,
510 struct fsf_link_down_info *link_down) 510 struct fsf_link_down_info *link_down)
511{ 511{
512 struct zfcp_adapter *adapter = fsf_req->adapter;
513
512 if (atomic_test_mask(ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, 514 if (atomic_test_mask(ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED,
513 &adapter->status)) 515 &adapter->status))
514 return; 516 return;
@@ -599,7 +601,7 @@ zfcp_fsf_link_down_info_eval(struct zfcp_adapter *adapter,
599 link_down->vendor_specific_code); 601 link_down->vendor_specific_code);
600 602
601 out: 603 out:
602 zfcp_erp_adapter_failed(adapter); 604 zfcp_erp_adapter_failed(adapter, id, (u64)fsf_req);
603} 605}
604 606
605/* 607/*
@@ -897,7 +899,7 @@ zfcp_fsf_status_read_handler(struct zfcp_fsf_req *fsf_req)
897 case FSF_STATUS_READ_SUB_NO_PHYSICAL_LINK: 899 case FSF_STATUS_READ_SUB_NO_PHYSICAL_LINK:
898 ZFCP_LOG_INFO("Physical link to adapter %s is down\n", 900 ZFCP_LOG_INFO("Physical link to adapter %s is down\n",
899 zfcp_get_busid_by_adapter(adapter)); 901 zfcp_get_busid_by_adapter(adapter));
900 zfcp_fsf_link_down_info_eval(adapter, 902 zfcp_fsf_link_down_info_eval(fsf_req, 38,
901 (struct fsf_link_down_info *) 903 (struct fsf_link_down_info *)
902 &status_buffer->payload); 904 &status_buffer->payload);
903 break; 905 break;
@@ -905,7 +907,7 @@ zfcp_fsf_status_read_handler(struct zfcp_fsf_req *fsf_req)
905 ZFCP_LOG_INFO("Local link to adapter %s is down " 907 ZFCP_LOG_INFO("Local link to adapter %s is down "
906 "due to failed FDISC login\n", 908 "due to failed FDISC login\n",
907 zfcp_get_busid_by_adapter(adapter)); 909 zfcp_get_busid_by_adapter(adapter));
908 zfcp_fsf_link_down_info_eval(adapter, 910 zfcp_fsf_link_down_info_eval(fsf_req, 39,
909 (struct fsf_link_down_info *) 911 (struct fsf_link_down_info *)
910 &status_buffer->payload); 912 &status_buffer->payload);
911 break; 913 break;
@@ -913,13 +915,13 @@ zfcp_fsf_status_read_handler(struct zfcp_fsf_req *fsf_req)
913 ZFCP_LOG_INFO("Local link to adapter %s is down " 915 ZFCP_LOG_INFO("Local link to adapter %s is down "
914 "due to firmware update on adapter\n", 916 "due to firmware update on adapter\n",
915 zfcp_get_busid_by_adapter(adapter)); 917 zfcp_get_busid_by_adapter(adapter));
916 zfcp_fsf_link_down_info_eval(adapter, NULL); 918 zfcp_fsf_link_down_info_eval(fsf_req, 40, NULL);
917 break; 919 break;
918 default: 920 default:
919 ZFCP_LOG_INFO("Local link to adapter %s is down " 921 ZFCP_LOG_INFO("Local link to adapter %s is down "
920 "due to unknown reason\n", 922 "due to unknown reason\n",
921 zfcp_get_busid_by_adapter(adapter)); 923 zfcp_get_busid_by_adapter(adapter));
922 zfcp_fsf_link_down_info_eval(adapter, NULL); 924 zfcp_fsf_link_down_info_eval(fsf_req, 41, NULL);
923 }; 925 };
924 break; 926 break;
925 927
@@ -928,7 +930,7 @@ zfcp_fsf_status_read_handler(struct zfcp_fsf_req *fsf_req)
928 "Restarting operations on this adapter\n", 930 "Restarting operations on this adapter\n",
929 zfcp_get_busid_by_adapter(adapter)); 931 zfcp_get_busid_by_adapter(adapter));
930 /* All ports should be marked as ready to run again */ 932 /* All ports should be marked as ready to run again */
931 zfcp_erp_modify_adapter_status(adapter, 933 zfcp_erp_modify_adapter_status(adapter, 30, 0,
932 ZFCP_STATUS_COMMON_RUNNING, 934 ZFCP_STATUS_COMMON_RUNNING,
933 ZFCP_SET); 935 ZFCP_SET);
934 zfcp_erp_adapter_reopen(adapter, 936 zfcp_erp_adapter_reopen(adapter,
@@ -1215,7 +1217,7 @@ zfcp_fsf_abort_fcp_command_handler(struct zfcp_fsf_req *new_fsf_req)
1215 zfcp_get_busid_by_unit(unit)); 1217 zfcp_get_busid_by_unit(unit));
1216 debug_text_event(new_fsf_req->adapter->erp_dbf, 2, 1218 debug_text_event(new_fsf_req->adapter->erp_dbf, 2,
1217 "fsf_s_pboxed"); 1219 "fsf_s_pboxed");
1218 zfcp_erp_port_boxed(unit->port); 1220 zfcp_erp_port_boxed(unit->port, 47, (u64)new_fsf_req);
1219 new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR 1221 new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR
1220 | ZFCP_STATUS_FSFREQ_RETRY; 1222 | ZFCP_STATUS_FSFREQ_RETRY;
1221 break; 1223 break;
@@ -1227,7 +1229,7 @@ zfcp_fsf_abort_fcp_command_handler(struct zfcp_fsf_req *new_fsf_req)
1227 unit->fcp_lun, unit->port->wwpn, 1229 unit->fcp_lun, unit->port->wwpn,
1228 zfcp_get_busid_by_unit(unit)); 1230 zfcp_get_busid_by_unit(unit));
1229 debug_text_event(new_fsf_req->adapter->erp_dbf, 1, "fsf_s_lboxed"); 1231 debug_text_event(new_fsf_req->adapter->erp_dbf, 1, "fsf_s_lboxed");
1230 zfcp_erp_unit_boxed(unit); 1232 zfcp_erp_unit_boxed(unit, 48, (u64)new_fsf_req);
1231 new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR 1233 new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR
1232 | ZFCP_STATUS_FSFREQ_RETRY; 1234 | ZFCP_STATUS_FSFREQ_RETRY;
1233 break; 1235 break;
@@ -1519,7 +1521,7 @@ zfcp_fsf_send_ct_handler(struct zfcp_fsf_req *fsf_req)
1519 } 1521 }
1520 } 1522 }
1521 debug_text_event(adapter->erp_dbf, 1, "fsf_s_access"); 1523 debug_text_event(adapter->erp_dbf, 1, "fsf_s_access");
1522 zfcp_erp_port_access_denied(port); 1524 zfcp_erp_port_access_denied(port, 55, (u64)fsf_req);
1523 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1525 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1524 break; 1526 break;
1525 1527
@@ -1554,7 +1556,7 @@ zfcp_fsf_send_ct_handler(struct zfcp_fsf_req *fsf_req)
1554 "(adapter %s, port d_id=0x%06x)\n", 1556 "(adapter %s, port d_id=0x%06x)\n",
1555 zfcp_get_busid_by_port(port), port->d_id); 1557 zfcp_get_busid_by_port(port), port->d_id);
1556 debug_text_event(adapter->erp_dbf, 2, "fsf_s_pboxed"); 1558 debug_text_event(adapter->erp_dbf, 2, "fsf_s_pboxed");
1557 zfcp_erp_port_boxed(port); 1559 zfcp_erp_port_boxed(port, 49, (u64)fsf_req);
1558 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR 1560 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR
1559 | ZFCP_STATUS_FSFREQ_RETRY; 1561 | ZFCP_STATUS_FSFREQ_RETRY;
1560 break; 1562 break;
@@ -1880,7 +1882,7 @@ static int zfcp_fsf_send_els_handler(struct zfcp_fsf_req *fsf_req)
1880 } 1882 }
1881 debug_text_event(adapter->erp_dbf, 1, "fsf_s_access"); 1883 debug_text_event(adapter->erp_dbf, 1, "fsf_s_access");
1882 if (port != NULL) 1884 if (port != NULL)
1883 zfcp_erp_port_access_denied(port); 1885 zfcp_erp_port_access_denied(port, 56, (u64)fsf_req);
1884 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 1886 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
1885 break; 1887 break;
1886 1888
@@ -2210,7 +2212,7 @@ zfcp_fsf_exchange_config_data_handler(struct zfcp_fsf_req *fsf_req)
2210 atomic_set_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK, 2212 atomic_set_mask(ZFCP_STATUS_ADAPTER_XCONFIG_OK,
2211 &adapter->status); 2213 &adapter->status);
2212 2214
2213 zfcp_fsf_link_down_info_eval(adapter, 2215 zfcp_fsf_link_down_info_eval(fsf_req, 42,
2214 &qtcb->header.fsf_status_qual.link_down_info); 2216 &qtcb->header.fsf_status_qual.link_down_info);
2215 break; 2217 break;
2216 default: 2218 default:
@@ -2393,7 +2395,7 @@ zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *fsf_req)
2393 case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE: 2395 case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE:
2394 zfcp_fsf_exchange_port_evaluate(fsf_req, 0); 2396 zfcp_fsf_exchange_port_evaluate(fsf_req, 0);
2395 atomic_set_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status); 2397 atomic_set_mask(ZFCP_STATUS_ADAPTER_XPORT_OK, &adapter->status);
2396 zfcp_fsf_link_down_info_eval(adapter, 2398 zfcp_fsf_link_down_info_eval(fsf_req, 43,
2397 &qtcb->header.fsf_status_qual.link_down_info); 2399 &qtcb->header.fsf_status_qual.link_down_info);
2398 break; 2400 break;
2399 default: 2401 default:
@@ -2523,7 +2525,7 @@ zfcp_fsf_open_port_handler(struct zfcp_fsf_req *fsf_req)
2523 } 2525 }
2524 } 2526 }
2525 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access"); 2527 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access");
2526 zfcp_erp_port_access_denied(port); 2528 zfcp_erp_port_access_denied(port, 57, (u64)fsf_req);
2527 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 2529 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2528 break; 2530 break;
2529 2531
@@ -2534,7 +2536,7 @@ zfcp_fsf_open_port_handler(struct zfcp_fsf_req *fsf_req)
2534 port->wwpn, zfcp_get_busid_by_port(port)); 2536 port->wwpn, zfcp_get_busid_by_port(port));
2535 debug_text_event(fsf_req->adapter->erp_dbf, 1, 2537 debug_text_event(fsf_req->adapter->erp_dbf, 1,
2536 "fsf_s_max_ports"); 2538 "fsf_s_max_ports");
2537 zfcp_erp_port_failed(port); 2539 zfcp_erp_port_failed(port, 31, (u64)fsf_req);
2538 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 2540 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2539 break; 2541 break;
2540 2542
@@ -2560,7 +2562,7 @@ zfcp_fsf_open_port_handler(struct zfcp_fsf_req *fsf_req)
2560 zfcp_get_busid_by_port(port)); 2562 zfcp_get_busid_by_port(port));
2561 debug_text_exception(fsf_req->adapter->erp_dbf, 0, 2563 debug_text_exception(fsf_req->adapter->erp_dbf, 0,
2562 "fsf_sq_no_retry"); 2564 "fsf_sq_no_retry");
2563 zfcp_erp_port_failed(port); 2565 zfcp_erp_port_failed(port, 32, (u64)fsf_req);
2564 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 2566 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2565 break; 2567 break;
2566 default: 2568 default:
@@ -2773,7 +2775,7 @@ zfcp_fsf_close_port_handler(struct zfcp_fsf_req *fsf_req)
2773 ZFCP_LOG_TRACE("remote port 0x016%Lx on adapter %s closed, " 2775 ZFCP_LOG_TRACE("remote port 0x016%Lx on adapter %s closed, "
2774 "port handle 0x%x\n", port->wwpn, 2776 "port handle 0x%x\n", port->wwpn,
2775 zfcp_get_busid_by_port(port), port->handle); 2777 zfcp_get_busid_by_port(port), port->handle);
2776 zfcp_erp_modify_port_status(port, 2778 zfcp_erp_modify_port_status(port, 33, (u64)fsf_req,
2777 ZFCP_STATUS_COMMON_OPEN, 2779 ZFCP_STATUS_COMMON_OPEN,
2778 ZFCP_CLEAR); 2780 ZFCP_CLEAR);
2779 retval = 0; 2781 retval = 0;
@@ -2923,7 +2925,7 @@ zfcp_fsf_close_physical_port_handler(struct zfcp_fsf_req *fsf_req)
2923 } 2925 }
2924 } 2926 }
2925 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access"); 2927 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access");
2926 zfcp_erp_port_access_denied(port); 2928 zfcp_erp_port_access_denied(port, 58, (u64)fsf_req);
2927 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 2929 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2928 break; 2930 break;
2929 2931
@@ -2934,7 +2936,7 @@ zfcp_fsf_close_physical_port_handler(struct zfcp_fsf_req *fsf_req)
2934 port->wwpn, 2936 port->wwpn,
2935 zfcp_get_busid_by_port(port)); 2937 zfcp_get_busid_by_port(port));
2936 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_pboxed"); 2938 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_pboxed");
2937 zfcp_erp_port_boxed(port); 2939 zfcp_erp_port_boxed(port, 50, (u64)fsf_req);
2938 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR | 2940 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
2939 ZFCP_STATUS_FSFREQ_RETRY; 2941 ZFCP_STATUS_FSFREQ_RETRY;
2940 2942
@@ -3159,7 +3161,7 @@ zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *fsf_req)
3159 } 3161 }
3160 } 3162 }
3161 debug_text_event(adapter->erp_dbf, 1, "fsf_s_access"); 3163 debug_text_event(adapter->erp_dbf, 1, "fsf_s_access");
3162 zfcp_erp_unit_access_denied(unit); 3164 zfcp_erp_unit_access_denied(unit, 59, (u64)fsf_req);
3163 atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status); 3165 atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status);
3164 atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status); 3166 atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status);
3165 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 3167 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -3170,7 +3172,7 @@ zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *fsf_req)
3170 "needs to be reopened\n", 3172 "needs to be reopened\n",
3171 unit->port->wwpn, zfcp_get_busid_by_unit(unit)); 3173 unit->port->wwpn, zfcp_get_busid_by_unit(unit));
3172 debug_text_event(adapter->erp_dbf, 2, "fsf_s_pboxed"); 3174 debug_text_event(adapter->erp_dbf, 2, "fsf_s_pboxed");
3173 zfcp_erp_port_boxed(unit->port); 3175 zfcp_erp_port_boxed(unit->port, 51, (u64)fsf_req);
3174 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR | 3176 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
3175 ZFCP_STATUS_FSFREQ_RETRY; 3177 ZFCP_STATUS_FSFREQ_RETRY;
3176 break; 3178 break;
@@ -3212,7 +3214,7 @@ zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *fsf_req)
3212 sizeof (union fsf_status_qual)); 3214 sizeof (union fsf_status_qual));
3213 debug_text_event(adapter->erp_dbf, 2, 3215 debug_text_event(adapter->erp_dbf, 2,
3214 "fsf_s_l_sh_vio"); 3216 "fsf_s_l_sh_vio");
3215 zfcp_erp_unit_access_denied(unit); 3217 zfcp_erp_unit_access_denied(unit, 60, (u64)fsf_req);
3216 atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status); 3218 atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status);
3217 atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status); 3219 atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status);
3218 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 3220 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
@@ -3228,7 +3230,7 @@ zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *fsf_req)
3228 zfcp_get_busid_by_unit(unit)); 3230 zfcp_get_busid_by_unit(unit));
3229 debug_text_event(adapter->erp_dbf, 1, 3231 debug_text_event(adapter->erp_dbf, 1,
3230 "fsf_s_max_units"); 3232 "fsf_s_max_units");
3231 zfcp_erp_unit_failed(unit); 3233 zfcp_erp_unit_failed(unit, 34, (u64)fsf_req);
3232 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 3234 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
3233 break; 3235 break;
3234 3236
@@ -3307,13 +3309,13 @@ zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *fsf_req)
3307 if (exclusive && !readwrite) { 3309 if (exclusive && !readwrite) {
3308 ZFCP_LOG_NORMAL("exclusive access of read-only " 3310 ZFCP_LOG_NORMAL("exclusive access of read-only "
3309 "unit not supported\n"); 3311 "unit not supported\n");
3310 zfcp_erp_unit_failed(unit); 3312 zfcp_erp_unit_failed(unit, 35, (u64)fsf_req);
3311 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 3313 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
3312 zfcp_erp_unit_shutdown(unit, 0); 3314 zfcp_erp_unit_shutdown(unit, 0);
3313 } else if (!exclusive && readwrite) { 3315 } else if (!exclusive && readwrite) {
3314 ZFCP_LOG_NORMAL("shared access of read-write " 3316 ZFCP_LOG_NORMAL("shared access of read-write "
3315 "unit not supported\n"); 3317 "unit not supported\n");
3316 zfcp_erp_unit_failed(unit); 3318 zfcp_erp_unit_failed(unit, 36, (u64)fsf_req);
3317 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 3319 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
3318 zfcp_erp_unit_shutdown(unit, 0); 3320 zfcp_erp_unit_shutdown(unit, 0);
3319 } 3321 }
@@ -3471,7 +3473,7 @@ zfcp_fsf_close_unit_handler(struct zfcp_fsf_req *fsf_req)
3471 unit->port->wwpn, 3473 unit->port->wwpn,
3472 zfcp_get_busid_by_unit(unit)); 3474 zfcp_get_busid_by_unit(unit));
3473 debug_text_event(fsf_req->adapter->erp_dbf, 2, "fsf_s_pboxed"); 3475 debug_text_event(fsf_req->adapter->erp_dbf, 2, "fsf_s_pboxed");
3474 zfcp_erp_port_boxed(unit->port); 3476 zfcp_erp_port_boxed(unit->port, 52, (u64)fsf_req);
3475 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR | 3477 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
3476 ZFCP_STATUS_FSFREQ_RETRY; 3478 ZFCP_STATUS_FSFREQ_RETRY;
3477 break; 3479 break;
@@ -3928,7 +3930,7 @@ zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *fsf_req)
3928 } 3930 }
3929 } 3931 }
3930 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access"); 3932 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access");
3931 zfcp_erp_unit_access_denied(unit); 3933 zfcp_erp_unit_access_denied(unit, 61, (u64)fsf_req);
3932 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR; 3934 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
3933 break; 3935 break;
3934 3936
@@ -3967,7 +3969,7 @@ zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *fsf_req)
3967 "needs to be reopened\n", 3969 "needs to be reopened\n",
3968 unit->port->wwpn, zfcp_get_busid_by_unit(unit)); 3970 unit->port->wwpn, zfcp_get_busid_by_unit(unit));
3969 debug_text_event(fsf_req->adapter->erp_dbf, 2, "fsf_s_pboxed"); 3971 debug_text_event(fsf_req->adapter->erp_dbf, 2, "fsf_s_pboxed");
3970 zfcp_erp_port_boxed(unit->port); 3972 zfcp_erp_port_boxed(unit->port, 53, (u64)fsf_req);
3971 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR | 3973 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
3972 ZFCP_STATUS_FSFREQ_RETRY; 3974 ZFCP_STATUS_FSFREQ_RETRY;
3973 break; 3975 break;
@@ -3978,7 +3980,7 @@ zfcp_fsf_send_fcp_command_handler(struct zfcp_fsf_req *fsf_req)
3978 zfcp_get_busid_by_unit(unit), 3980 zfcp_get_busid_by_unit(unit),
3979 unit->port->wwpn, unit->fcp_lun); 3981 unit->port->wwpn, unit->fcp_lun);
3980 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_lboxed"); 3982 debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_lboxed");
3981 zfcp_erp_unit_boxed(unit); 3983 zfcp_erp_unit_boxed(unit, 54, (u64)fsf_req);
3982 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR 3984 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR
3983 | ZFCP_STATUS_FSFREQ_RETRY; 3985 | ZFCP_STATUS_FSFREQ_RETRY;
3984 break; 3986 break;