On Wed, Mar 29, 2017 at 5:28 PM, Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx> wrote: > On Sun, Mar 19, 2017 at 05:59:01PM +0200, Matan Barak wrote: > >> +int ib_uverbs_dealloc_xrcd(struct ib_uverbs_device *dev, >> + struct ib_xrcd *xrcd, >> + enum rdma_remove_reason why) >> { >> struct inode *inode; >> + int ret; >> >> inode = xrcd->inode; >> if (inode && !atomic_dec_and_test(&xrcd->usecnt)) >> - return; >> + return 0; >> >> - ib_dealloc_xrcd(xrcd); >> + ret = ib_dealloc_xrcd(xrcd); >> >> - if (inode) >> + if (why == RDMA_REMOVE_DESTROY && ret) >> + atomic_inc(&xrcd->usecnt); > > Is this suposed to be _inc? Might need a comment since every other > dealloc has a dec? > Yeah, it should be an _inc as if ib_dealloc_xrcd fails, we should restore the object's reference count. I agree that the right approach is to encompass that in ib_dealloc_xrcd, but this shouldn't be part of this patch-set. > Jason Matan > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html