Re: FAILED: patch "[PATCH] Target/iscsi,iser: Avoid accepting transport connections" failed to apply to 3.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Greg,

On Tue, 2014-06-03 at 23:06 -0700, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
> The patch below does not apply to the 3.14-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <stable@xxxxxxxxxxxxxxx>.
> 

This patch ended up introducing a regression, for which a patch is
queued up for v3.15.0..

So that said, how do you prefer to handle this..?  Either I can send an
updated patch for <= v3.14.y, and you apply the regression fix in a
subsequent stable release, or wait and apply this patch + the regression
fix together once the regression fix hits mainline (will be happening by
tomorrow).

Which do you prefer..?

Thank you,

--nab

> thanks,
> 
> greg k-h
> 
> ------------------ original commit in Linus's tree ------------------
> 
> From 14f4b54fe38f3a8f8392a50b951c8aa43b63687a Mon Sep 17 00:00:00 2001
> From: Sagi Grimberg <sagig@xxxxxxxxxxxx>
> Date: Tue, 29 Apr 2014 13:13:47 +0300
> Subject: [PATCH] Target/iscsi,iser: Avoid accepting transport connections
>  during stop stage
> 
> When the target is in stop stage, iSER transport initiates RDMA disconnects.
> The iSER initiator may wish to establish a new connection over the
> still existing network portal. In this case iSER transport should not
> accept and resume new RDMA connections. In order to learn that, iscsi_np
> is added with enabled flag so the iSER transport can check when deciding
> weather to accept and resume a new connection request.
> 
> The iscsi_np is enabled after successful transport setup, and disabled
> before iscsi_np login threads are cleaned up.
> 
> Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx # 3.10+
> Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> 
> diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
> index 826eaf5741f6..a1710465faaf 100644
> --- a/drivers/infiniband/ulp/isert/ib_isert.c
> +++ b/drivers/infiniband/ulp/isert/ib_isert.c
> @@ -562,7 +562,15 @@ isert_connect_request(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
>  	struct isert_device *device;
>  	struct ib_device *ib_dev = cma_id->device;
>  	int ret = 0;
> -	u8 pi_support = np->tpg_np->tpg->tpg_attrib.t10_pi;
> +	u8 pi_support;
> +
> +	spin_lock_bh(&np->np_thread_lock);
> +	if (!np->enabled) {
> +		spin_unlock_bh(&np->np_thread_lock);
> +		pr_debug("iscsi_np is not enabled, reject connect request\n");
> +		return rdma_reject(cma_id, NULL, 0);
> +	}
> +	spin_unlock_bh(&np->np_thread_lock);
>  
>  	pr_debug("Entering isert_connect_request cma_id: %p, context: %p\n",
>  		 cma_id, cma_id->context);
> @@ -653,6 +661,7 @@ isert_connect_request(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
>  		goto out_mr;
>  	}
>  
> +	pi_support = np->tpg_np->tpg->tpg_attrib.t10_pi;
>  	if (pi_support && !device->pi_capable) {
>  		pr_err("Protection information requested but not supported\n");
>  		ret = -EINVAL;
> diff --git a/drivers/target/iscsi/iscsi_target_core.h b/drivers/target/iscsi/iscsi_target_core.h
> index 6960f22909ae..302eb3b78715 100644
> --- a/drivers/target/iscsi/iscsi_target_core.h
> +++ b/drivers/target/iscsi/iscsi_target_core.h
> @@ -775,6 +775,7 @@ struct iscsi_np {
>  	int			np_ip_proto;
>  	int			np_sock_type;
>  	enum np_thread_state_table np_thread_state;
> +	bool                    enabled;
>  	enum iscsi_timer_flags_table np_login_timer_flags;
>  	u32			np_exports;
>  	enum np_flags_table	np_flags;
> diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
> index 8739b98f6f93..b72d8550e8bc 100644
> --- a/drivers/target/iscsi/iscsi_target_login.c
> +++ b/drivers/target/iscsi/iscsi_target_login.c
> @@ -984,6 +984,7 @@ int iscsi_target_setup_login_socket(
>  	}
>  
>  	np->np_transport = t;
> +	np->enabled = true;
>  	return 0;
>  }
>  
> diff --git a/drivers/target/iscsi/iscsi_target_tpg.c b/drivers/target/iscsi/iscsi_target_tpg.c
> index eb96b20dc09e..ca1811858afd 100644
> --- a/drivers/target/iscsi/iscsi_target_tpg.c
> +++ b/drivers/target/iscsi/iscsi_target_tpg.c
> @@ -184,6 +184,7 @@ static void iscsit_clear_tpg_np_login_thread(
>  		return;
>  	}
>  
> +	tpg_np->tpg_np->enabled = false;
>  	iscsit_reset_np_thread(tpg_np->tpg_np, tpg_np, tpg, shutdown);
>  }
>  
> 


--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]