SUNRPC: Make slot allocation more reliable
authorTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 20 Jun 2017 23:35:39 +0000 (19:35 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 13 Jul 2017 19:58:04 +0000 (15:58 -0400)
commit92ea011f7cbade821ebd56a1f70d20331c0320c8
tree7c4665f0ede9ac710b284af7bfa965c68811127a
parent818a8dbe83fddff534b814a7d4e0c75b511dff2e
SUNRPC: Make slot allocation more reliable

In xprt_alloc_slot(), the spin lock is only needed to provide atomicity
between the atomic_add_unless() failure and the call to xprt_add_backlog().
We do not actually need to hold it across the memory allocation itself.

By dropping the lock, we can use a more resilient GFP_NOFS allocation,
just as we now do in the rest of the RPC client code.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprt.c