> On May 3, 2019, at 11:28 AM, Trond Myklebust <trondmy@xxxxxxxxx> wrote: > > On Fri, 2019-05-03 at 10:21 -0400, Chuck Lever wrote: >>> On May 3, 2019, at 7:18 AM, Trond Myklebust <trondmy@xxxxxxxxx> >>> wrote: >>> >>> Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> >>> --- >>> net/sunrpc/xprt.c | 61 ++++++++++--------- >>> --- >>> net/sunrpc/xprtrdma/rpc_rdma.c | 4 +- >>> net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 4 +- >>> net/sunrpc/xprtrdma/svc_rdma_transport.c | 8 +-- >>> net/sunrpc/xprtsock.c | 23 ++++---- >>> 5 files changed, 47 insertions(+), 53 deletions(-) >> >> For rpc_rdma.c and svc_rdma_backchannel.c: >> >> Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx> >> >> For svc_rdma_transport.c: >> >> These locks are server-side only. AFAICS it's not safe >> to leave BH's enabled here. Can you drop these hunks? > > Oops... Yes, I don't know why I mistook that for the xprt- >> transport_lock... > > You mean these 3 hunks, right? Sí. > >>> diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c >>> b/net/sunrpc/xprtrdma/svc_rdma_transport.c >>> index 027a3b07d329..18ffc6190ea9 100644 >>> --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c >>> +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c >>> @@ -221,9 +221,9 @@ static void handle_connect_req(struct >>> rdma_cm_id *new_cma_id, >>> * Enqueue the new transport on the accept queue of the >>> listening >>> * transport >>> */ >>> - spin_lock_bh(&listen_xprt->sc_lock); >>> + spin_lock(&listen_xprt->sc_lock); >>> list_add_tail(&newxprt->sc_accept_q, &listen_xprt- >>>> sc_accept_q); >>> - spin_unlock_bh(&listen_xprt->sc_lock); >>> + spin_unlock(&listen_xprt->sc_lock); >>> >>> set_bit(XPT_CONN, &listen_xprt->sc_xprt.xpt_flags); >>> svc_xprt_enqueue(&listen_xprt->sc_xprt); >>> @@ -396,7 +396,7 @@ static struct svc_xprt *svc_rdma_accept(struct >>> svc_xprt *xprt) >>> listen_rdma = container_of(xprt, struct svcxprt_rdma, sc_xprt); >>> clear_bit(XPT_CONN, &xprt->xpt_flags); >>> /* Get the next entry off the accept list */ >>> - spin_lock_bh(&listen_rdma->sc_lock); >>> + spin_lock(&listen_rdma->sc_lock); >>> if (!list_empty(&listen_rdma->sc_accept_q)) { >>> newxprt = list_entry(listen_rdma->sc_accept_q.next, >>> struct svcxprt_rdma, sc_accept_q); >>> @@ -404,7 +404,7 @@ static struct svc_xprt *svc_rdma_accept(struct >>> svc_xprt *xprt) >>> } >>> if (!list_empty(&listen_rdma->sc_accept_q)) >>> set_bit(XPT_CONN, &listen_rdma->sc_xprt.xpt_flags); >>> - spin_unlock_bh(&listen_rdma->sc_lock); >>> + spin_unlock(&listen_rdma->sc_lock); >>> if (!newxprt) >>> return NULL; >>> >>> > > -- > Trond Myklebust > Linux NFS client maintainer, Hammerspace > trond.myklebust@xxxxxxxxxxxxxxx > > >