Re: [PATCH 2/3] ib/iser: remove buggy back-pointer setting

Mike Christie
2010-05-05T17:50:44Z

On 05/05/2010 09:30 AM, Or Gerlitz wrote:
> iscsi connection object life cycle includes binding and unbinding
> (conn_stop) to/from the iscsi transport connection object. Since
> iscsi connection objects are recycled, on the time the transport
> connection (e.g iser's ib connection) is released it is illegal
> to touch the iscsi connection tied to the transport back-pointer, as
> it may already point to a different transport connection.
>
> Signed-off-by: Or Gerlitz<ogerlitz-smomgflXvOZWk0Htik3J/w@public.gmane.org>
>
> ---
> drivers/infiniband/ulp/iser/iser_verbs.c | 2 --
> 1 file changed, 2 deletions(-)
>
> Index: linux-2.6.34-rc6/drivers/infiniband/ulp/iser/iser_verbs.c
> ===================================================================
> --- linux-2.6.34-rc6.orig/drivers/infiniband/ulp/iser/iser_verbs.c
> +++ linux-2.6.34-rc6/drivers/infiniband/ulp/iser/iser_verbs.c
> @@ -346,8 +346,6 @@ static void iser_conn_release(struct ise
> /* on EVENT_ADDR_ERROR there's no device yet for this conn */
> if (device != NULL)
> iser_device_try_release(device);
> - if (ib_conn->iser_conn)
> - ib_conn->iser_conn->ib_conn = NULL;
> iscsi_destroy_endpoint(ib_conn->ep);
> }
>

I agree on it being a bug, but do you remember why that was added to
iscsi_iser_conn_destroy originally? I later moved it to
iser_conn_release in
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b40977d95fb3a1898ace6a7d97e4ed1a33a440a4)
but I think Erez had added that null and some checks for it being null
for a specific bug.

I am not 100% sure. Look in the git logs to make sure. I will check them
too when I get some more time.