Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

Pull SCSI fixes from James Bottomley:
"Two last minute fixes, both in drivers.

The fnic one is a highly unlikely condition, but the RDMA one is a
recently introduced regression that causes a kernel warning to trigger
in every RDMA logon, which would be unsightly if it got into the final
release"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: RDMA/isert: Fix a recently introduced regression related to logout
scsi: fnic: do not queue commands during fwreset

+6 -15
-12
drivers/infiniband/ulp/isert/ib_isert.c
··· 2575 } 2576 } 2577 2578 - static void 2579 - isert_wait4cmds(struct iscsi_conn *conn) 2580 - { 2581 - isert_info("iscsi_conn %p\n", conn); 2582 - 2583 - if (conn->sess) { 2584 - target_sess_cmd_list_set_waiting(conn->sess->se_sess); 2585 - target_wait_for_sess_cmds(conn->sess->se_sess); 2586 - } 2587 - } 2588 - 2589 /** 2590 * isert_put_unsol_pending_cmds() - Drop commands waiting for 2591 * unsolicitate dataout ··· 2622 2623 ib_drain_qp(isert_conn->qp); 2624 isert_put_unsol_pending_cmds(conn); 2625 - isert_wait4cmds(conn); 2626 isert_wait4logout(isert_conn); 2627 2628 queue_work(isert_release_wq, &isert_conn->release_work);
··· 2575 } 2576 } 2577 2578 /** 2579 * isert_put_unsol_pending_cmds() - Drop commands waiting for 2580 * unsolicitate dataout ··· 2633 2634 ib_drain_qp(isert_conn->qp); 2635 isert_put_unsol_pending_cmds(conn); 2636 isert_wait4logout(isert_conn); 2637 2638 queue_work(isert_release_wq, &isert_conn->release_work);
+3
drivers/scsi/fnic/fnic_scsi.c
··· 439 if (unlikely(fnic_chk_state_flags_locked(fnic, FNIC_FLAGS_IO_BLOCKED))) 440 return SCSI_MLQUEUE_HOST_BUSY; 441 442 rport = starget_to_rport(scsi_target(sc->device)); 443 if (!rport) { 444 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
··· 439 if (unlikely(fnic_chk_state_flags_locked(fnic, FNIC_FLAGS_IO_BLOCKED))) 440 return SCSI_MLQUEUE_HOST_BUSY; 441 442 + if (unlikely(fnic_chk_state_flags_locked(fnic, FNIC_FLAGS_FWRESET))) 443 + return SCSI_MLQUEUE_HOST_BUSY; 444 + 445 rport = starget_to_rport(scsi_target(sc->device)); 446 if (!rport) { 447 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
+3 -3
drivers/target/iscsi/iscsi_target.c
··· 4149 iscsit_stop_nopin_response_timer(conn); 4150 iscsit_stop_nopin_timer(conn); 4151 4152 - if (conn->conn_transport->iscsit_wait_conn) 4153 - conn->conn_transport->iscsit_wait_conn(conn); 4154 - 4155 /* 4156 * During Connection recovery drop unacknowledged out of order 4157 * commands for this connection, and prepare the other commands ··· 4233 iscsit_check_conn_usage_count(conn); 4234 target_sess_cmd_list_set_waiting(sess->se_sess); 4235 target_wait_for_sess_cmds(sess->se_sess); 4236 4237 ahash_request_free(conn->conn_tx_hash); 4238 if (conn->conn_rx_hash) {
··· 4149 iscsit_stop_nopin_response_timer(conn); 4150 iscsit_stop_nopin_timer(conn); 4151 4152 /* 4153 * During Connection recovery drop unacknowledged out of order 4154 * commands for this connection, and prepare the other commands ··· 4236 iscsit_check_conn_usage_count(conn); 4237 target_sess_cmd_list_set_waiting(sess->se_sess); 4238 target_wait_for_sess_cmds(sess->se_sess); 4239 + 4240 + if (conn->conn_transport->iscsit_wait_conn) 4241 + conn->conn_transport->iscsit_wait_conn(conn); 4242 4243 ahash_request_free(conn->conn_tx_hash); 4244 if (conn->conn_rx_hash) {