diff options
author | Swen Schillig <swen@vnet.ibm.com> | 2009-08-18 09:43:16 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-09-05 09:49:21 -0400 |
commit | 09a46c6e34ba152169b7400d266d2efb4c391a43 (patch) | |
tree | 208b6b62a0f760db3f29551af266e070c0490bea /drivers/s390 | |
parent | a4623c467ff76f9258555d44d68371e10c5406c2 (diff) |
[SCSI] zfcp: Remove the useless ZFCP_REQ_AUTO_CLEANUP flag
The flag ZFCP_REQ_AUTO_CLEANUP was useless as the
ZFCP_STATUS_FSFREQ_CLEANUP flag is there for exactly the same purpose.
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 80 |
1 files changed, 45 insertions, 35 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 96c580ee7509..70a978a14f2a 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -13,8 +13,6 @@ | |||
13 | #include "zfcp_ext.h" | 13 | #include "zfcp_ext.h" |
14 | #include "zfcp_dbf.h" | 14 | #include "zfcp_dbf.h" |
15 | 15 | ||
16 | #define ZFCP_REQ_AUTO_CLEANUP 0x00000002 | ||
17 | |||
18 | static void zfcp_fsf_request_timeout_handler(unsigned long data) | 16 | static void zfcp_fsf_request_timeout_handler(unsigned long data) |
19 | { | 17 | { |
20 | struct zfcp_adapter *adapter = (struct zfcp_adapter *) data; | 18 | struct zfcp_adapter *adapter = (struct zfcp_adapter *) data; |
@@ -703,8 +701,7 @@ static struct fsf_qtcb *zfcp_qtcb_alloc(mempool_t *pool) | |||
703 | } | 701 | } |
704 | 702 | ||
705 | static struct zfcp_fsf_req *zfcp_fsf_req_create(struct zfcp_adapter *adapter, | 703 | static struct zfcp_fsf_req *zfcp_fsf_req_create(struct zfcp_adapter *adapter, |
706 | u32 fsf_cmd, int req_flags, | 704 | u32 fsf_cmd, mempool_t *pool) |
707 | mempool_t *pool) | ||
708 | { | 705 | { |
709 | struct qdio_buffer_element *sbale; | 706 | struct qdio_buffer_element *sbale; |
710 | struct zfcp_qdio_queue *req_q = &adapter->req_q; | 707 | struct zfcp_qdio_queue *req_q = &adapter->req_q; |
@@ -761,9 +758,6 @@ static struct zfcp_fsf_req *zfcp_fsf_req_create(struct zfcp_adapter *adapter, | |||
761 | return ERR_PTR(-EIO); | 758 | return ERR_PTR(-EIO); |
762 | } | 759 | } |
763 | 760 | ||
764 | if (likely(req_flags & ZFCP_REQ_AUTO_CLEANUP)) | ||
765 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
766 | |||
767 | return req; | 761 | return req; |
768 | } | 762 | } |
769 | 763 | ||
@@ -818,7 +812,7 @@ int zfcp_fsf_status_read(struct zfcp_adapter *adapter) | |||
818 | if (zfcp_fsf_req_sbal_get(adapter)) | 812 | if (zfcp_fsf_req_sbal_get(adapter)) |
819 | goto out; | 813 | goto out; |
820 | 814 | ||
821 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_UNSOLICITED_STATUS, 0, | 815 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_UNSOLICITED_STATUS, |
822 | adapter->pool.status_read_req); | 816 | adapter->pool.status_read_req); |
823 | if (IS_ERR(req)) { | 817 | if (IS_ERR(req)) { |
824 | retval = PTR_ERR(req); | 818 | retval = PTR_ERR(req); |
@@ -925,7 +919,7 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_command(unsigned long old_req_id, | |||
925 | if (zfcp_fsf_req_sbal_get(adapter)) | 919 | if (zfcp_fsf_req_sbal_get(adapter)) |
926 | goto out; | 920 | goto out; |
927 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND, | 921 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND, |
928 | 0, adapter->pool.scsi_abort); | 922 | adapter->pool.scsi_abort); |
929 | if (IS_ERR(req)) { | 923 | if (IS_ERR(req)) { |
930 | req = NULL; | 924 | req = NULL; |
931 | goto out; | 925 | goto out; |
@@ -1081,13 +1075,14 @@ int zfcp_fsf_send_ct(struct zfcp_send_ct *ct, mempool_t *pool, | |||
1081 | if (zfcp_fsf_req_sbal_get(adapter)) | 1075 | if (zfcp_fsf_req_sbal_get(adapter)) |
1082 | goto out; | 1076 | goto out; |
1083 | 1077 | ||
1084 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_GENERIC, | 1078 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_GENERIC, pool); |
1085 | ZFCP_REQ_AUTO_CLEANUP, pool); | 1079 | |
1086 | if (IS_ERR(req)) { | 1080 | if (IS_ERR(req)) { |
1087 | ret = PTR_ERR(req); | 1081 | ret = PTR_ERR(req); |
1088 | goto out; | 1082 | goto out; |
1089 | } | 1083 | } |
1090 | 1084 | ||
1085 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1091 | ret = zfcp_fsf_setup_ct_els_sbals(req, ct->req, ct->resp, | 1086 | ret = zfcp_fsf_setup_ct_els_sbals(req, ct->req, ct->resp, |
1092 | FSF_MAX_SBALS_PER_REQ); | 1087 | FSF_MAX_SBALS_PER_REQ); |
1093 | if (ret) | 1088 | if (ret) |
@@ -1189,13 +1184,15 @@ int zfcp_fsf_send_els(struct zfcp_send_els *els) | |||
1189 | spin_lock_bh(&adapter->req_q_lock); | 1184 | spin_lock_bh(&adapter->req_q_lock); |
1190 | if (zfcp_fsf_req_sbal_get(adapter)) | 1185 | if (zfcp_fsf_req_sbal_get(adapter)) |
1191 | goto out; | 1186 | goto out; |
1192 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_ELS, | 1187 | |
1193 | ZFCP_REQ_AUTO_CLEANUP, NULL); | 1188 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_ELS, NULL); |
1189 | |||
1194 | if (IS_ERR(req)) { | 1190 | if (IS_ERR(req)) { |
1195 | ret = PTR_ERR(req); | 1191 | ret = PTR_ERR(req); |
1196 | goto out; | 1192 | goto out; |
1197 | } | 1193 | } |
1198 | 1194 | ||
1195 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1199 | ret = zfcp_fsf_setup_ct_els_sbals(req, els->req, els->resp, 2); | 1196 | ret = zfcp_fsf_setup_ct_els_sbals(req, els->req, els->resp, 2); |
1200 | 1197 | ||
1201 | if (ret) | 1198 | if (ret) |
@@ -1234,15 +1231,16 @@ int zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action) | |||
1234 | spin_lock_bh(&adapter->req_q_lock); | 1231 | spin_lock_bh(&adapter->req_q_lock); |
1235 | if (zfcp_fsf_req_sbal_get(adapter)) | 1232 | if (zfcp_fsf_req_sbal_get(adapter)) |
1236 | goto out; | 1233 | goto out; |
1237 | req = zfcp_fsf_req_create(adapter, | 1234 | |
1238 | FSF_QTCB_EXCHANGE_CONFIG_DATA, | 1235 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA, |
1239 | ZFCP_REQ_AUTO_CLEANUP, | ||
1240 | adapter->pool.erp_req); | 1236 | adapter->pool.erp_req); |
1237 | |||
1241 | if (IS_ERR(req)) { | 1238 | if (IS_ERR(req)) { |
1242 | retval = PTR_ERR(req); | 1239 | retval = PTR_ERR(req); |
1243 | goto out; | 1240 | goto out; |
1244 | } | 1241 | } |
1245 | 1242 | ||
1243 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1246 | sbale = zfcp_qdio_sbale_req(req); | 1244 | sbale = zfcp_qdio_sbale_req(req); |
1247 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 1245 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
1248 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 1246 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -1278,8 +1276,8 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter, | |||
1278 | if (zfcp_fsf_req_sbal_get(adapter)) | 1276 | if (zfcp_fsf_req_sbal_get(adapter)) |
1279 | goto out_unlock; | 1277 | goto out_unlock; |
1280 | 1278 | ||
1281 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA, | 1279 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA, NULL); |
1282 | 0, NULL); | 1280 | |
1283 | if (IS_ERR(req)) { | 1281 | if (IS_ERR(req)) { |
1284 | retval = PTR_ERR(req); | 1282 | retval = PTR_ERR(req); |
1285 | goto out_unlock; | 1283 | goto out_unlock; |
@@ -1331,14 +1329,16 @@ int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action) | |||
1331 | spin_lock_bh(&adapter->req_q_lock); | 1329 | spin_lock_bh(&adapter->req_q_lock); |
1332 | if (zfcp_fsf_req_sbal_get(adapter)) | 1330 | if (zfcp_fsf_req_sbal_get(adapter)) |
1333 | goto out; | 1331 | goto out; |
1332 | |||
1334 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, | 1333 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, |
1335 | ZFCP_REQ_AUTO_CLEANUP, | ||
1336 | adapter->pool.erp_req); | 1334 | adapter->pool.erp_req); |
1335 | |||
1337 | if (IS_ERR(req)) { | 1336 | if (IS_ERR(req)) { |
1338 | retval = PTR_ERR(req); | 1337 | retval = PTR_ERR(req); |
1339 | goto out; | 1338 | goto out; |
1340 | } | 1339 | } |
1341 | 1340 | ||
1341 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1342 | sbale = zfcp_qdio_sbale_req(req); | 1342 | sbale = zfcp_qdio_sbale_req(req); |
1343 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 1343 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
1344 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 1344 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -1378,8 +1378,8 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter, | |||
1378 | if (zfcp_fsf_req_sbal_get(adapter)) | 1378 | if (zfcp_fsf_req_sbal_get(adapter)) |
1379 | goto out_unlock; | 1379 | goto out_unlock; |
1380 | 1380 | ||
1381 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0, | 1381 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, NULL); |
1382 | NULL); | 1382 | |
1383 | if (IS_ERR(req)) { | 1383 | if (IS_ERR(req)) { |
1384 | retval = PTR_ERR(req); | 1384 | retval = PTR_ERR(req); |
1385 | goto out_unlock; | 1385 | goto out_unlock; |
@@ -1500,15 +1500,15 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action) | |||
1500 | if (zfcp_fsf_req_sbal_get(adapter)) | 1500 | if (zfcp_fsf_req_sbal_get(adapter)) |
1501 | goto out; | 1501 | goto out; |
1502 | 1502 | ||
1503 | req = zfcp_fsf_req_create(adapter, | 1503 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_PORT_WITH_DID, |
1504 | FSF_QTCB_OPEN_PORT_WITH_DID, | ||
1505 | ZFCP_REQ_AUTO_CLEANUP, | ||
1506 | adapter->pool.erp_req); | 1504 | adapter->pool.erp_req); |
1505 | |||
1507 | if (IS_ERR(req)) { | 1506 | if (IS_ERR(req)) { |
1508 | retval = PTR_ERR(req); | 1507 | retval = PTR_ERR(req); |
1509 | goto out; | 1508 | goto out; |
1510 | } | 1509 | } |
1511 | 1510 | ||
1511 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1512 | sbale = zfcp_qdio_sbale_req(req); | 1512 | sbale = zfcp_qdio_sbale_req(req); |
1513 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 1513 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
1514 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 1514 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -1571,13 +1571,14 @@ int zfcp_fsf_close_port(struct zfcp_erp_action *erp_action) | |||
1571 | goto out; | 1571 | goto out; |
1572 | 1572 | ||
1573 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT, | 1573 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT, |
1574 | ZFCP_REQ_AUTO_CLEANUP, | ||
1575 | adapter->pool.erp_req); | 1574 | adapter->pool.erp_req); |
1575 | |||
1576 | if (IS_ERR(req)) { | 1576 | if (IS_ERR(req)) { |
1577 | retval = PTR_ERR(req); | 1577 | retval = PTR_ERR(req); |
1578 | goto out; | 1578 | goto out; |
1579 | } | 1579 | } |
1580 | 1580 | ||
1581 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1581 | sbale = zfcp_qdio_sbale_req(req); | 1582 | sbale = zfcp_qdio_sbale_req(req); |
1582 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 1583 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
1583 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 1584 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -1646,15 +1647,15 @@ int zfcp_fsf_open_wka_port(struct zfcp_wka_port *wka_port) | |||
1646 | if (zfcp_fsf_req_sbal_get(adapter)) | 1647 | if (zfcp_fsf_req_sbal_get(adapter)) |
1647 | goto out; | 1648 | goto out; |
1648 | 1649 | ||
1649 | req = zfcp_fsf_req_create(adapter, | 1650 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_PORT_WITH_DID, |
1650 | FSF_QTCB_OPEN_PORT_WITH_DID, | ||
1651 | ZFCP_REQ_AUTO_CLEANUP, | ||
1652 | adapter->pool.erp_req); | 1651 | adapter->pool.erp_req); |
1652 | |||
1653 | if (unlikely(IS_ERR(req))) { | 1653 | if (unlikely(IS_ERR(req))) { |
1654 | retval = PTR_ERR(req); | 1654 | retval = PTR_ERR(req); |
1655 | goto out; | 1655 | goto out; |
1656 | } | 1656 | } |
1657 | 1657 | ||
1658 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1658 | sbale = zfcp_qdio_sbale_req(req); | 1659 | sbale = zfcp_qdio_sbale_req(req); |
1659 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 1660 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
1660 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 1661 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -1702,13 +1703,14 @@ int zfcp_fsf_close_wka_port(struct zfcp_wka_port *wka_port) | |||
1702 | goto out; | 1703 | goto out; |
1703 | 1704 | ||
1704 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT, | 1705 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT, |
1705 | ZFCP_REQ_AUTO_CLEANUP, | ||
1706 | adapter->pool.erp_req); | 1706 | adapter->pool.erp_req); |
1707 | |||
1707 | if (unlikely(IS_ERR(req))) { | 1708 | if (unlikely(IS_ERR(req))) { |
1708 | retval = PTR_ERR(req); | 1709 | retval = PTR_ERR(req); |
1709 | goto out; | 1710 | goto out; |
1710 | } | 1711 | } |
1711 | 1712 | ||
1713 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1712 | sbale = zfcp_qdio_sbale_req(req); | 1714 | sbale = zfcp_qdio_sbale_req(req); |
1713 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 1715 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
1714 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 1716 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -1793,13 +1795,14 @@ int zfcp_fsf_close_physical_port(struct zfcp_erp_action *erp_action) | |||
1793 | goto out; | 1795 | goto out; |
1794 | 1796 | ||
1795 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PHYSICAL_PORT, | 1797 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PHYSICAL_PORT, |
1796 | ZFCP_REQ_AUTO_CLEANUP, | ||
1797 | adapter->pool.erp_req); | 1798 | adapter->pool.erp_req); |
1799 | |||
1798 | if (IS_ERR(req)) { | 1800 | if (IS_ERR(req)) { |
1799 | retval = PTR_ERR(req); | 1801 | retval = PTR_ERR(req); |
1800 | goto out; | 1802 | goto out; |
1801 | } | 1803 | } |
1802 | 1804 | ||
1805 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1803 | sbale = zfcp_qdio_sbale_req(req); | 1806 | sbale = zfcp_qdio_sbale_req(req); |
1804 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 1807 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
1805 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 1808 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -1965,13 +1968,14 @@ int zfcp_fsf_open_unit(struct zfcp_erp_action *erp_action) | |||
1965 | goto out; | 1968 | goto out; |
1966 | 1969 | ||
1967 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_LUN, | 1970 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_LUN, |
1968 | ZFCP_REQ_AUTO_CLEANUP, | ||
1969 | adapter->pool.erp_req); | 1971 | adapter->pool.erp_req); |
1972 | |||
1970 | if (IS_ERR(req)) { | 1973 | if (IS_ERR(req)) { |
1971 | retval = PTR_ERR(req); | 1974 | retval = PTR_ERR(req); |
1972 | goto out; | 1975 | goto out; |
1973 | } | 1976 | } |
1974 | 1977 | ||
1978 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
1975 | sbale = zfcp_qdio_sbale_req(req); | 1979 | sbale = zfcp_qdio_sbale_req(req); |
1976 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 1980 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
1977 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 1981 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -2049,14 +2053,16 @@ int zfcp_fsf_close_unit(struct zfcp_erp_action *erp_action) | |||
2049 | spin_lock_bh(&adapter->req_q_lock); | 2053 | spin_lock_bh(&adapter->req_q_lock); |
2050 | if (zfcp_fsf_req_sbal_get(adapter)) | 2054 | if (zfcp_fsf_req_sbal_get(adapter)) |
2051 | goto out; | 2055 | goto out; |
2056 | |||
2052 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_LUN, | 2057 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_LUN, |
2053 | ZFCP_REQ_AUTO_CLEANUP, | ||
2054 | adapter->pool.erp_req); | 2058 | adapter->pool.erp_req); |
2059 | |||
2055 | if (IS_ERR(req)) { | 2060 | if (IS_ERR(req)) { |
2056 | retval = PTR_ERR(req); | 2061 | retval = PTR_ERR(req); |
2057 | goto out; | 2062 | goto out; |
2058 | } | 2063 | } |
2059 | 2064 | ||
2065 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
2060 | sbale = zfcp_qdio_sbale_req(req); | 2066 | sbale = zfcp_qdio_sbale_req(req); |
2061 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; | 2067 | sbale[0].flags |= SBAL_FLAGS0_TYPE_READ; |
2062 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; | 2068 | sbale[1].flags |= SBAL_FLAGS_LAST_ENTRY; |
@@ -2353,14 +2359,16 @@ int zfcp_fsf_send_fcp_command_task(struct zfcp_unit *unit, | |||
2353 | atomic_inc(&adapter->qdio_outb_full); | 2359 | atomic_inc(&adapter->qdio_outb_full); |
2354 | goto out; | 2360 | goto out; |
2355 | } | 2361 | } |
2362 | |||
2356 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, | 2363 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, |
2357 | ZFCP_REQ_AUTO_CLEANUP, | ||
2358 | adapter->pool.scsi_req); | 2364 | adapter->pool.scsi_req); |
2365 | |||
2359 | if (IS_ERR(req)) { | 2366 | if (IS_ERR(req)) { |
2360 | retval = PTR_ERR(req); | 2367 | retval = PTR_ERR(req); |
2361 | goto out; | 2368 | goto out; |
2362 | } | 2369 | } |
2363 | 2370 | ||
2371 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | ||
2364 | zfcp_unit_get(unit); | 2372 | zfcp_unit_get(unit); |
2365 | req->unit = unit; | 2373 | req->unit = unit; |
2366 | req->data = scsi_cmnd; | 2374 | req->data = scsi_cmnd; |
@@ -2465,8 +2473,10 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_ctm(struct zfcp_unit *unit, u8 tm_flags) | |||
2465 | spin_lock_bh(&adapter->req_q_lock); | 2473 | spin_lock_bh(&adapter->req_q_lock); |
2466 | if (zfcp_fsf_req_sbal_get(adapter)) | 2474 | if (zfcp_fsf_req_sbal_get(adapter)) |
2467 | goto out; | 2475 | goto out; |
2468 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, 0, | 2476 | |
2477 | req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, | ||
2469 | adapter->pool.scsi_req); | 2478 | adapter->pool.scsi_req); |
2479 | |||
2470 | if (IS_ERR(req)) { | 2480 | if (IS_ERR(req)) { |
2471 | req = NULL; | 2481 | req = NULL; |
2472 | goto out; | 2482 | goto out; |
@@ -2537,7 +2547,7 @@ struct zfcp_fsf_req *zfcp_fsf_control_file(struct zfcp_adapter *adapter, | |||
2537 | if (zfcp_fsf_req_sbal_get(adapter)) | 2547 | if (zfcp_fsf_req_sbal_get(adapter)) |
2538 | goto out; | 2548 | goto out; |
2539 | 2549 | ||
2540 | req = zfcp_fsf_req_create(adapter, fsf_cfdc->command, 0, NULL); | 2550 | req = zfcp_fsf_req_create(adapter, fsf_cfdc->command, NULL); |
2541 | if (IS_ERR(req)) { | 2551 | if (IS_ERR(req)) { |
2542 | retval = -EPERM; | 2552 | retval = -EPERM; |
2543 | goto out; | 2553 | goto out; |