Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 12 Sep 2015 02:00:42 +0000 (19:00 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 12 Sep 2015 02:00:42 +0000 (19:00 -0700)
Pull SCSI target updates from Nicholas Bellinger:
 "Here are the outstanding target-pending updates for v4.3-rc1.

  Mostly bug-fixes and minor changes this round.  The fallout from the
  big v4.2-rc1 RCU conversion have (thus far) been minimal.

  The highlights this round include:

   - Move sense handling routines into scsi_common code (Sagi)

   - Return ABORTED_COMMAND sense key for PI errors (Sagi)

   - Add tpg_enabled_sendtargets attribute for disabled iscsi-target
     discovery (David)

   - Shrink target struct se_cmd by rearranging fields (Roland)

   - Drop iSCSI use of mutex around max_cmd_sn increment (Roland)

   - Replace iSCSI __kernel_sockaddr_storage with sockaddr_storage (Andy +
     Chris)

   - Honor fabric max_data_sg_nents I/O transfer limit (Arun + Himanshu +
     nab)

   - Fix EXTENDED_COPY >= v4.1 regression OOPsen (Alex + nab)"

* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (37 commits)
  target: use stringify.h instead of own definition
  target/user: Fix UFLAG_UNKNOWN_OP handling
  target: Remove no-op conditional
  target/user: Remove unused variable
  target: Fix max_cmd_sn increment w/o cmdsn mutex regressions
  target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
  target/qla2xxx: Honor max_data_sg_nents I/O transfer limit
  target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage
  target/iscsi: Replace conn->login_ip with login_sockaddr
  target/iscsi: Keep local_ip as the actual sockaddr
  target/iscsi: Fix np_ip bracket issue by removing np_ip
  target: Drop iSCSI use of mutex around max_cmd_sn increment
  qla2xxx: Update tcm_qla2xxx module description to 24xx+
  iscsi-target: Add tpg_enabled_sendtargets for disabled discovery
  drivers: target: Drop unlikely before IS_ERR(_OR_NULL)
  target: check DPO/FUA usage for COMPARE AND WRITE
  target: Shrink struct se_cmd by rearranging fields
  target: Remove cmd->se_ordered_id (unused except debug log lines)
  target: add support for START_STOP_UNIT SCSI opcode
  target: improve unsupported opcode message
  ...

1  2 
drivers/infiniband/ulp/isert/ib_isert.c
drivers/scsi/libiscsi.c
drivers/scsi/qla2xxx/tcm_qla2xxx.c
drivers/scsi/scsi_error.c
drivers/target/iscsi/iscsi_target.c
drivers/target/iscsi/iscsi_target_login.c
drivers/target/iscsi/iscsi_target_login.h
drivers/target/iscsi/iscsi_target_nego.c
drivers/target/target_core_hba.c
drivers/target/target_core_spc.c
include/target/iscsi/iscsi_target_core.h

Simple merge
Simple merge
Simple merge
Simple merge
@@@ -379,32 -363,11 +378,28 @@@ static int iscsi_target_do_tx_login_io(
  
        if (conn->conn_transport->iscsit_put_login_tx(conn, login,
                                        login->rsp_length + padding) < 0)
 -              return -1;
 +              goto err;
  
        login->rsp_length               = 0;
-       mutex_lock(&sess->cmdsn_mutex);
-       login_rsp->exp_cmdsn            = cpu_to_be32(sess->exp_cmd_sn);
-       login_rsp->max_cmdsn            = cpu_to_be32(sess->max_cmd_sn);
-       mutex_unlock(&sess->cmdsn_mutex);
  
        return 0;
 +
 +err:
 +      if (login->login_complete) {
 +              if (conn->rx_thread && conn->rx_thread_active) {
 +                      send_sig(SIGINT, conn->rx_thread, 1);
 +                      kthread_stop(conn->rx_thread);
 +              }
 +              if (conn->tx_thread && conn->tx_thread_active) {
 +                      send_sig(SIGINT, conn->tx_thread, 1);
 +                      kthread_stop(conn->tx_thread);
 +              }
 +              spin_lock(&iscsit_global->ts_bitmap_lock);
 +              bitmap_release_region(iscsit_global->ts_bitmap, conn->bitmap_id,
 +                                    get_order(1));
 +              spin_unlock(&iscsit_global->ts_bitmap_lock);
 +      }
 +      return -1;
  }
  
  static void iscsi_target_sk_data_ready(struct sock *sk)
Simple merge
Simple merge