[ewg][PATCH][1/2] SRP multipath failover within 60 seconds,

Vu Pham vuhuong at mellanox.com
Wed Feb 6 10:48:54 PST 2008


Vu Pham wrote:
> Roland Dreier wrote:
>>  > diff --git a/drivers/infiniband/ulp/srp/ib_srp.c 
>> b/drivers/infiniband/ulp/srp/ib_srp.c
>>  > index 950228f..45a2533 100644
>>  > --- a/drivers/infiniband/ulp/srp/ib_srp.c
>>  > +++ b/drivers/infiniband/ulp/srp/ib_srp.c
>>  > @@ -400,7 +400,6 @@
>>  >          printk(KERN_DEBUG PFX "Sending CM DREQ failed\n");
>>  >          return;
>>  >      }
>>  > -    wait_for_completion(&target->done);
>>  >  }
>>  >   >  static void srp_remove_work(struct work_struct *work)
>>  > @@ -1266,7 +1294,6 @@
>>  >      case IB_CM_TIMEWAIT_EXIT:
>>  >          printk(KERN_ERR PFX "connection closed\n");
>>  >   > -        comp = 1;
>>  >          target->status = 0;
>>  >          break;
>>
>> Seems like this would leak the cm_id?
> 
> I said in my [0/2] email, this patch should be applied on top of 
> srp_1_recreate_at_reconnect.patch which is already in ofed_1_3.git tree 
> kernel_patches/fixes/ directory
> 
> I attached it here
> 

I did not answer you correctly.

This would not leak the cm_id

in srp_reconnect_target()
...
srp_disconnect_target(target);
new_cm_id = ib_create_cm_id()
if (IS_ERR(new_cm_id)) {
	ret = PTR_ERR(new_cm_id);
	goto err;
}
ib_destroy_cm_id(target->cm_id);

the cm_id get destroy in srp_reconnect_target or in 
srp_remove_work

   -vu



More information about the ewg mailing list