Re: [PATCH 2.6.30] svcrdma: clean up error paths.

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

 



On Wed, May 13, 2009 at 05:42:23PM -0500, Steve Wise wrote:
> Hey Bruce,
>
> J. Bruce Fields wrote:
>> On Wed, Apr 29, 2009 at 02:14:00PM -0500, Steve Wise wrote:
>>   
>>> These fixes resolved crashes due to resource leak BUG_ON checks. The
>>> resource leaks were detected by introducing asynchronous transport errors.
>>>     
>>
>> Thanks, applied for 2.6.30.  (And also appropriate for stable (2.6.29),
>> I assume?)
>>
>> But, could someone take a closer look at the error paths here?  Questions:
>>
>> 	- svc_rdma_post_recv() does a svc_rdma_put_context() on error--
>> 	  are you sure its caller needs to as well?
>>   
>
> The svc_rdma_put_context() call inside svc_rdma_post_recv() is for the  
> recv context that was allocated inside that function.  The caller, in  
> this case send_reply() also does a svc_rdma_put_context(), but that is  
> for the send context.   So I think this is correct.
>
>> 	- In send_reply, some of the cleanout is shared between the
>> 	  first return -ENOTCONN and the final err: cleanup.  Could we
>> 	  add another err: label and share some of that cleanup?
>>   
>
> The only common logic I see is the svc_rdma_put_context() call that  
> could be shared.  But one case calls it with free_pages == 1 after the  
> pages have been mapped, and the other with 0 since no pages are mapped  
> at that point (when the call to svc_rdma_post_recv() fails).   So I'm  
> not sure its worth doing?

No, I think you're probably right about both of these.  Thanks for
taking a look.

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

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux