aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorChristof Schmitt <christof.schmitt@de.ibm.com>2009-03-02 07:08:59 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-12 13:58:19 -0400
commit92cab0d93a1107ad7f6d827fde62d1aa4db15e86 (patch)
treead379f6e8c9b56c92b373a7953505b0d63c5e6cf /drivers/s390
parent52bfb558d2803590f86360ec3af1750897a9c010 (diff)
[SCSI] zfcp: Wait for free SBALs when possible
For calls from zfcp erp, scsi_eh and sysfs switch the calls issuing FSF requests to zfcp_fsf_req_sbal_get to wait for free SBALs. Acked-by: Swen Schillig <swen@vnet.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')
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 14d7413b9e86..1b25158c50f0 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -929,8 +929,8 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_command(unsigned long old_req_id,
929 struct qdio_buffer_element *sbale; 929 struct qdio_buffer_element *sbale;
930 struct zfcp_fsf_req *req = NULL; 930 struct zfcp_fsf_req *req = NULL;
931 931
932 spin_lock(&adapter->req_q_lock); 932 spin_lock_bh(&adapter->req_q_lock);
933 if (!zfcp_fsf_sbal_available(adapter)) 933 if (zfcp_fsf_req_sbal_get(adapter))
934 goto out; 934 goto out;
935 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND, 935 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND,
936 req_flags, adapter->pool.fsf_req_abort); 936 req_flags, adapter->pool.fsf_req_abort);
@@ -961,7 +961,7 @@ out_error_free:
961 zfcp_fsf_req_free(req); 961 zfcp_fsf_req_free(req);
962 req = NULL; 962 req = NULL;
963out: 963out:
964 spin_unlock(&adapter->req_q_lock); 964 spin_unlock_bh(&adapter->req_q_lock);
965 return req; 965 return req;
966} 966}
967 967
@@ -1225,7 +1225,7 @@ int zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action)
1225 int retval = -EIO; 1225 int retval = -EIO;
1226 1226
1227 spin_lock_bh(&adapter->req_q_lock); 1227 spin_lock_bh(&adapter->req_q_lock);
1228 if (!zfcp_fsf_sbal_available(adapter)) 1228 if (zfcp_fsf_req_sbal_get(adapter))
1229 goto out; 1229 goto out;
1230 req = zfcp_fsf_req_create(adapter, 1230 req = zfcp_fsf_req_create(adapter,
1231 FSF_QTCB_EXCHANGE_CONFIG_DATA, 1231 FSF_QTCB_EXCHANGE_CONFIG_DATA,
@@ -1321,7 +1321,7 @@ int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action)
1321 return -EOPNOTSUPP; 1321 return -EOPNOTSUPP;
1322 1322
1323 spin_lock_bh(&adapter->req_q_lock); 1323 spin_lock_bh(&adapter->req_q_lock);
1324 if (!zfcp_fsf_sbal_available(adapter)) 1324 if (zfcp_fsf_req_sbal_get(adapter))
1325 goto out; 1325 goto out;
1326 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 1326 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA,
1327 ZFCP_REQ_AUTO_CLEANUP, 1327 ZFCP_REQ_AUTO_CLEANUP,
@@ -1367,7 +1367,7 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
1367 return -EOPNOTSUPP; 1367 return -EOPNOTSUPP;
1368 1368
1369 spin_lock_bh(&adapter->req_q_lock); 1369 spin_lock_bh(&adapter->req_q_lock);
1370 if (!zfcp_fsf_sbal_available(adapter)) 1370 if (zfcp_fsf_req_sbal_get(adapter))
1371 goto out; 1371 goto out;
1372 1372
1373 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0, 1373 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0,
@@ -2452,8 +2452,8 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_ctm(struct zfcp_adapter *adapter,
2452 ZFCP_STATUS_COMMON_UNBLOCKED))) 2452 ZFCP_STATUS_COMMON_UNBLOCKED)))
2453 return NULL; 2453 return NULL;
2454 2454
2455 spin_lock(&adapter->req_q_lock); 2455 spin_lock_bh(&adapter->req_q_lock);
2456 if (!zfcp_fsf_sbal_available(adapter)) 2456 if (zfcp_fsf_req_sbal_get(adapter))
2457 goto out; 2457 goto out;
2458 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags, 2458 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
2459 adapter->pool.fsf_req_scsi); 2459 adapter->pool.fsf_req_scsi);
@@ -2487,7 +2487,7 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_ctm(struct zfcp_adapter *adapter,
2487 zfcp_fsf_req_free(req); 2487 zfcp_fsf_req_free(req);
2488 req = NULL; 2488 req = NULL;
2489out: 2489out:
2490 spin_unlock(&adapter->req_q_lock); 2490 spin_unlock_bh(&adapter->req_q_lock);
2491 return req; 2491 return req;
2492} 2492}
2493 2493