On Jul 22, 2015, at 5:14 PM, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> wrote: > On Wed, Jul 22, 2015 at 4:40 PM, Chuck Lever <chuck.lever@xxxxxxxxxx> wrote: >> Hi Trond- >> >> >> On Jul 22, 2015, at 4:36 PM, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> wrote: >> >>> xprt_alloc_bc_request() cannot call xprt_free_bc_request() without >>> deadlocking, since it already holds the xprt->bc_pa_lock. >>> >>> Reported-by: Chuck Lever <chuck.lever@xxxxxxxxxx> >>> Fixes: 0d2a970d0ae55 ("SUNRPC: Fix a backchannel race") >>> Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> >> >> That’s exactly what I did as a basic fix, and I can report that >> it successfully avoids the deadlock. >> >> If xprt_alloc_bc_request() no longer calls xprt_free_bc_request(), >> are the accounting changes introduced by 0d2a970d0ae55 still >> necessary? > > The accounting changes are there to fix the race that Christoph > reported in which a valid backchannel request can be rejected by the > RPC layer if it happens to come in after the reply to the previous > request was sent, but before xprt_free_bc_request has completed. I > would therefore expect them still to be needed. > > That said, I just noticed that the bc_free_count was being incorrectly > maintained. Should be fixed with v2 of the patch series. I will get v2 in front of the tester who found this issue. -- Chuck Lever -- 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