|
@@ -710,10 +710,10 @@ static void zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *req)
|
|
|
|
|
|
static int zfcp_fsf_sbal_check(struct zfcp_qdio_queue *queue)
|
|
static int zfcp_fsf_sbal_check(struct zfcp_qdio_queue *queue)
|
|
{
|
|
{
|
|
- spin_lock(&queue->lock);
|
|
|
|
|
|
+ spin_lock_bh(&queue->lock);
|
|
if (atomic_read(&queue->count))
|
|
if (atomic_read(&queue->count))
|
|
return 1;
|
|
return 1;
|
|
- spin_unlock(&queue->lock);
|
|
|
|
|
|
+ spin_unlock_bh(&queue->lock);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -722,13 +722,13 @@ static int zfcp_fsf_req_sbal_get(struct zfcp_adapter *adapter)
|
|
long ret;
|
|
long ret;
|
|
struct zfcp_qdio_queue *req_q = &adapter->req_q;
|
|
struct zfcp_qdio_queue *req_q = &adapter->req_q;
|
|
|
|
|
|
- spin_unlock(&req_q->lock);
|
|
|
|
|
|
+ spin_unlock_bh(&req_q->lock);
|
|
ret = wait_event_interruptible_timeout(adapter->request_wq,
|
|
ret = wait_event_interruptible_timeout(adapter->request_wq,
|
|
zfcp_fsf_sbal_check(req_q), 5 * HZ);
|
|
zfcp_fsf_sbal_check(req_q), 5 * HZ);
|
|
if (ret > 0)
|
|
if (ret > 0)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- spin_lock(&req_q->lock);
|
|
|
|
|
|
+ spin_lock_bh(&req_q->lock);
|
|
return -EIO;
|
|
return -EIO;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -870,14 +870,14 @@ int zfcp_fsf_status_read(struct zfcp_adapter *adapter)
|
|
volatile struct qdio_buffer_element *sbale;
|
|
volatile struct qdio_buffer_element *sbale;
|
|
int retval = -EIO;
|
|
int retval = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_UNSOLICITED_STATUS,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_UNSOLICITED_STATUS,
|
|
ZFCP_REQ_NO_QTCB,
|
|
ZFCP_REQ_NO_QTCB,
|
|
adapter->pool.fsf_req_status_read);
|
|
adapter->pool.fsf_req_status_read);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -910,7 +910,7 @@ failed_buf:
|
|
zfcp_fsf_req_free(req);
|
|
zfcp_fsf_req_free(req);
|
|
zfcp_hba_dbf_event_fsf_unsol("fail", adapter, NULL);
|
|
zfcp_hba_dbf_event_fsf_unsol("fail", adapter, NULL);
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -988,7 +988,7 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_command(unsigned long old_req_id,
|
|
goto out;
|
|
goto out;
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND,
|
|
req_flags, adapter->pool.fsf_req_abort);
|
|
req_flags, adapter->pool.fsf_req_abort);
|
|
- if (unlikely(IS_ERR(req)))
|
|
|
|
|
|
+ if (IS_ERR(req))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
if (unlikely(!(atomic_read(&unit->status) &
|
|
if (unlikely(!(atomic_read(&unit->status) &
|
|
@@ -1106,13 +1106,13 @@ int zfcp_fsf_send_ct(struct zfcp_send_ct *ct, mempool_t *pool,
|
|
struct zfcp_fsf_req *req;
|
|
struct zfcp_fsf_req *req;
|
|
int ret = -EIO;
|
|
int ret = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_GENERIC,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_GENERIC,
|
|
ZFCP_REQ_AUTO_CLEANUP, pool);
|
|
ZFCP_REQ_AUTO_CLEANUP, pool);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
ret = PTR_ERR(req);
|
|
ret = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1148,7 +1148,7 @@ failed_send:
|
|
if (erp_action)
|
|
if (erp_action)
|
|
erp_action->fsf_req = NULL;
|
|
erp_action->fsf_req = NULL;
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1223,7 +1223,7 @@ int zfcp_fsf_send_els(struct zfcp_send_els *els)
|
|
goto out;
|
|
goto out;
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_ELS,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_ELS,
|
|
ZFCP_REQ_AUTO_CLEANUP, NULL);
|
|
ZFCP_REQ_AUTO_CLEANUP, NULL);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
ret = PTR_ERR(req);
|
|
ret = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1263,14 +1263,14 @@ int zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action)
|
|
struct zfcp_adapter *adapter = erp_action->adapter;
|
|
struct zfcp_adapter *adapter = erp_action->adapter;
|
|
int retval = -EIO;
|
|
int retval = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (!atomic_read(&adapter->req_q.count))
|
|
if (!atomic_read(&adapter->req_q.count))
|
|
goto out;
|
|
goto out;
|
|
req = zfcp_fsf_req_create(adapter,
|
|
req = zfcp_fsf_req_create(adapter,
|
|
FSF_QTCB_EXCHANGE_CONFIG_DATA,
|
|
FSF_QTCB_EXCHANGE_CONFIG_DATA,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
adapter->pool.fsf_req_erp);
|
|
adapter->pool.fsf_req_erp);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1295,7 +1295,7 @@ int zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action)
|
|
erp_action->fsf_req = NULL;
|
|
erp_action->fsf_req = NULL;
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1306,13 +1306,13 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter,
|
|
struct zfcp_fsf_req *req = NULL;
|
|
struct zfcp_fsf_req *req = NULL;
|
|
int retval = -EIO;
|
|
int retval = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA,
|
|
0, NULL);
|
|
0, NULL);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1334,7 +1334,7 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter,
|
|
zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
|
|
zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
|
|
retval = zfcp_fsf_req_send(req);
|
|
retval = zfcp_fsf_req_send(req);
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
if (!retval)
|
|
if (!retval)
|
|
wait_event(req->completion_wq,
|
|
wait_event(req->completion_wq,
|
|
req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
|
|
req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
|
|
@@ -1359,13 +1359,13 @@ int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action)
|
|
if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT))
|
|
if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT))
|
|
return -EOPNOTSUPP;
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (!atomic_read(&adapter->req_q.count))
|
|
if (!atomic_read(&adapter->req_q.count))
|
|
goto out;
|
|
goto out;
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
adapter->pool.fsf_req_erp);
|
|
adapter->pool.fsf_req_erp);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1385,7 +1385,7 @@ int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action)
|
|
erp_action->fsf_req = NULL;
|
|
erp_action->fsf_req = NULL;
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1405,13 +1405,13 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
|
|
if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT))
|
|
if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT))
|
|
return -EOPNOTSUPP;
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (!atomic_read(&adapter->req_q.count))
|
|
if (!atomic_read(&adapter->req_q.count))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0,
|
|
NULL);
|
|
NULL);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1427,7 +1427,7 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
|
|
zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
|
|
zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
|
|
retval = zfcp_fsf_req_send(req);
|
|
retval = zfcp_fsf_req_send(req);
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
if (!retval)
|
|
if (!retval)
|
|
wait_event(req->completion_wq,
|
|
wait_event(req->completion_wq,
|
|
req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
|
|
req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
|
|
@@ -1531,7 +1531,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
|
|
struct zfcp_fsf_req *req;
|
|
struct zfcp_fsf_req *req;
|
|
int retval = -EIO;
|
|
int retval = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
@@ -1539,7 +1539,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
|
|
FSF_QTCB_OPEN_PORT_WITH_DID,
|
|
FSF_QTCB_OPEN_PORT_WITH_DID,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
adapter->pool.fsf_req_erp);
|
|
adapter->pool.fsf_req_erp);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1562,7 +1562,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
|
|
erp_action->fsf_req = NULL;
|
|
erp_action->fsf_req = NULL;
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1603,14 +1603,14 @@ int zfcp_fsf_close_port(struct zfcp_erp_action *erp_action)
|
|
struct zfcp_fsf_req *req;
|
|
struct zfcp_fsf_req *req;
|
|
int retval = -EIO;
|
|
int retval = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
adapter->pool.fsf_req_erp);
|
|
adapter->pool.fsf_req_erp);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1633,7 +1633,7 @@ int zfcp_fsf_close_port(struct zfcp_erp_action *erp_action)
|
|
erp_action->fsf_req = NULL;
|
|
erp_action->fsf_req = NULL;
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1700,14 +1700,14 @@ int zfcp_fsf_close_physical_port(struct zfcp_erp_action *erp_action)
|
|
struct zfcp_fsf_req *req;
|
|
struct zfcp_fsf_req *req;
|
|
int retval = -EIO;
|
|
int retval = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PHYSICAL_PORT,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PHYSICAL_PORT,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
adapter->pool.fsf_req_erp);
|
|
adapter->pool.fsf_req_erp);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1731,7 +1731,7 @@ int zfcp_fsf_close_physical_port(struct zfcp_erp_action *erp_action)
|
|
erp_action->fsf_req = NULL;
|
|
erp_action->fsf_req = NULL;
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1875,14 +1875,14 @@ int zfcp_fsf_open_unit(struct zfcp_erp_action *erp_action)
|
|
struct zfcp_fsf_req *req;
|
|
struct zfcp_fsf_req *req;
|
|
int retval = -EIO;
|
|
int retval = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_LUN,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_LUN,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
adapter->pool.fsf_req_erp);
|
|
adapter->pool.fsf_req_erp);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1910,7 +1910,7 @@ int zfcp_fsf_open_unit(struct zfcp_erp_action *erp_action)
|
|
erp_action->fsf_req = NULL;
|
|
erp_action->fsf_req = NULL;
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1965,13 +1965,13 @@ int zfcp_fsf_close_unit(struct zfcp_erp_action *erp_action)
|
|
struct zfcp_fsf_req *req;
|
|
struct zfcp_fsf_req *req;
|
|
int retval = -EIO;
|
|
int retval = -EIO;
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_LUN,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_LUN,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
ZFCP_REQ_AUTO_CLEANUP,
|
|
adapter->pool.fsf_req_erp);
|
|
adapter->pool.fsf_req_erp);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -1995,7 +1995,7 @@ int zfcp_fsf_close_unit(struct zfcp_erp_action *erp_action)
|
|
erp_action->fsf_req = NULL;
|
|
erp_action->fsf_req = NULL;
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2228,7 +2228,7 @@ int zfcp_fsf_send_fcp_command_task(struct zfcp_adapter *adapter,
|
|
goto out;
|
|
goto out;
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
|
|
adapter->pool.fsf_req_scsi);
|
|
adapter->pool.fsf_req_scsi);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = PTR_ERR(req);
|
|
retval = PTR_ERR(req);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -2351,7 +2351,7 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_ctm(struct zfcp_adapter *adapter,
|
|
goto out;
|
|
goto out;
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
|
|
req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
|
|
adapter->pool.fsf_req_scsi);
|
|
adapter->pool.fsf_req_scsi);
|
|
- if (unlikely(IS_ERR(req)))
|
|
|
|
|
|
+ if (IS_ERR(req))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT;
|
|
req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT;
|
|
@@ -2417,12 +2417,12 @@ struct zfcp_fsf_req *zfcp_fsf_control_file(struct zfcp_adapter *adapter,
|
|
return ERR_PTR(-EINVAL);
|
|
return ERR_PTR(-EINVAL);
|
|
}
|
|
}
|
|
|
|
|
|
- spin_lock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_lock_bh(&adapter->req_q.lock);
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
if (zfcp_fsf_req_sbal_get(adapter))
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
req = zfcp_fsf_req_create(adapter, fsf_cfdc->command, 0, NULL);
|
|
req = zfcp_fsf_req_create(adapter, fsf_cfdc->command, 0, NULL);
|
|
- if (unlikely(IS_ERR(req))) {
|
|
|
|
|
|
+ if (IS_ERR(req)) {
|
|
retval = -EPERM;
|
|
retval = -EPERM;
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -2447,7 +2447,7 @@ struct zfcp_fsf_req *zfcp_fsf_control_file(struct zfcp_adapter *adapter,
|
|
zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
|
|
zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
|
|
retval = zfcp_fsf_req_send(req);
|
|
retval = zfcp_fsf_req_send(req);
|
|
out:
|
|
out:
|
|
- spin_unlock(&adapter->req_q.lock);
|
|
|
|
|
|
+ spin_unlock_bh(&adapter->req_q.lock);
|
|
|
|
|
|
if (!retval) {
|
|
if (!retval) {
|
|
wait_event(req->completion_wq,
|
|
wait_event(req->completion_wq,
|