Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending

Pull SCSI target fixes from Nicholas Bellinger:
"Included is the recent tcm_qla2xxx residual underrun length fix from
Roland, along with Joern's iscsi-target patch for session_lock
breakage within iscsit_stop_time2retain_timer() code. Both are CC'ed
to stable.

The remaining two are specific to recent iscsi-target + iser
conversion changes. One drops some left-over debug noise, and Andy's
patch fixes configfs attribute handling during an explicit network
portal feature bit disable when iser-target is unsupported."

* git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
iscsi-target: Remove left over v3.10-rc debug printks
target/iscsi: Fix op=disable + error handling cases in np_store_iser
tcm_qla2xxx: Fix residual for underrun commands that fail
target/iscsi: don't corrupt bh_count in iscsit_stop_time2retain_timer()

+21 -22
+5 -1
drivers/scsi/qla2xxx/tcm_qla2xxx.c
··· 688 688 * For FCP_READ with CHECK_CONDITION status, clear cmd->bufflen 689 689 * for qla_tgt_xmit_response LLD code 690 690 */ 691 + if (se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) { 692 + se_cmd->se_cmd_flags &= ~SCF_OVERFLOW_BIT; 693 + se_cmd->residual_count = 0; 694 + } 691 695 se_cmd->se_cmd_flags |= SCF_UNDERFLOW_BIT; 692 - se_cmd->residual_count = se_cmd->data_length; 696 + se_cmd->residual_count += se_cmd->data_length; 693 697 694 698 cmd->bufflen = 0; 695 699 }
+14 -13
drivers/target/iscsi/iscsi_target_configfs.c
··· 155 155 struct iscsi_tpg_np *tpg_np_iser = NULL; 156 156 char *endptr; 157 157 u32 op; 158 - int rc; 158 + int rc = 0; 159 159 160 160 op = simple_strtoul(page, &endptr, 0); 161 161 if ((op != 1) && (op != 0)) { ··· 174 174 return -EINVAL; 175 175 176 176 if (op) { 177 - int rc = request_module("ib_isert"); 178 - if (rc != 0) 177 + rc = request_module("ib_isert"); 178 + if (rc != 0) { 179 179 pr_warn("Unable to request_module for ib_isert\n"); 180 + rc = 0; 181 + } 180 182 181 183 tpg_np_iser = iscsit_tpg_add_network_portal(tpg, &np->np_sockaddr, 182 184 np->np_ip, tpg_np, ISCSI_INFINIBAND); 183 - if (!tpg_np_iser || IS_ERR(tpg_np_iser)) 185 + if (IS_ERR(tpg_np_iser)) { 186 + rc = PTR_ERR(tpg_np_iser); 184 187 goto out; 188 + } 185 189 } else { 186 190 tpg_np_iser = iscsit_tpg_locate_child_np(tpg_np, ISCSI_INFINIBAND); 187 - if (!tpg_np_iser) 188 - goto out; 189 - 190 - rc = iscsit_tpg_del_network_portal(tpg, tpg_np_iser); 191 - if (rc < 0) 192 - goto out; 191 + if (tpg_np_iser) { 192 + rc = iscsit_tpg_del_network_portal(tpg, tpg_np_iser); 193 + if (rc < 0) 194 + goto out; 195 + } 193 196 } 194 - 195 - printk("lio_target_np_store_iser() done, op: %d\n", op); 196 197 197 198 iscsit_put_tpg(tpg); 198 199 return count; 199 200 out: 200 201 iscsit_put_tpg(tpg); 201 - return -EINVAL; 202 + return rc; 202 203 } 203 204 204 205 TF_NP_BASE_ATTR(lio_target, iser, S_IRUGO | S_IWUSR);
+2 -2
drivers/target/iscsi/iscsi_target_erl0.c
··· 842 842 return 0; 843 843 844 844 sess->time2retain_timer_flags |= ISCSI_TF_STOP; 845 - spin_unlock_bh(&se_tpg->session_lock); 845 + spin_unlock(&se_tpg->session_lock); 846 846 847 847 del_timer_sync(&sess->time2retain_timer); 848 848 849 - spin_lock_bh(&se_tpg->session_lock); 849 + spin_lock(&se_tpg->session_lock); 850 850 sess->time2retain_timer_flags &= ~ISCSI_TF_RUNNING; 851 851 pr_debug("Stopped Time2Retain Timer for SID: %u\n", 852 852 sess->sid);
-3
drivers/target/iscsi/iscsi_target_login.c
··· 984 984 } 985 985 986 986 np->np_transport = t; 987 - printk("Set np->np_transport to %p -> %s\n", np->np_transport, 988 - np->np_transport->name); 989 987 return 0; 990 988 } 991 989 ··· 1000 1002 1001 1003 conn->sock = new_sock; 1002 1004 conn->login_family = np->np_sockaddr.ss_family; 1003 - printk("iSCSI/TCP: Setup conn->sock from new_sock: %p\n", new_sock); 1004 1005 1005 1006 if (np->np_sockaddr.ss_family == AF_INET6) { 1006 1007 memset(&sock_in6, 0, sizeof(struct sockaddr_in6));
-3
drivers/target/iscsi/iscsi_target_nego.c
··· 721 721 722 722 start += strlen(key) + strlen(value) + 2; 723 723 } 724 - 725 - printk("i_buf: %s, s_buf: %s, t_buf: %s\n", i_buf, s_buf, t_buf); 726 - 727 724 /* 728 725 * See 5.3. Login Phase. 729 726 */