diff options
| author | J. Bruce Fields <bfields@citi.umich.edu> | 2007-07-11 18:39:02 -0400 | 
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-07-19 15:21:39 -0400 | 
| commit | be879c4e249a8875d7129f3b0c1bb62584dafbd8 (patch) | |
| tree | 6d6d774ac4dd24ff280e83e1d6a65be29a6dc6f8 /net/sunrpc/auth.c | |
| parent | e3a535e1739a9da3cc316ccdfe5cd4bf84d745ac (diff) | |
| download | olio-linux-3.10-be879c4e249a8875d7129f3b0c1bb62584dafbd8.tar.xz olio-linux-3.10-be879c4e249a8875d7129f3b0c1bb62584dafbd8.zip  | |
SUNRPC: move bkl locking and xdr proc invocation into a common helper
Since every invocation of xdr encode or decode functions takes the BKL now,
there's a lot of redundant lock_kernel/unlock_kernel pairs that we can pull
out into a common function.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/auth.c')
| -rw-r--r-- | net/sunrpc/auth.c | 13 | 
1 files changed, 2 insertions, 11 deletions
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c index 29a8ecc6092..1ea27559b1d 100644 --- a/net/sunrpc/auth.c +++ b/net/sunrpc/auth.c @@ -13,7 +13,6 @@  #include <linux/errno.h>  #include <linux/sunrpc/clnt.h>  #include <linux/spinlock.h> -#include <linux/smp_lock.h>  #ifdef RPC_DEBUG  # define RPCDBG_FACILITY	RPCDBG_AUTH @@ -476,17 +475,13 @@ rpcauth_wrap_req(struct rpc_task *task, kxdrproc_t encode, void *rqstp,  		__be32 *data, void *obj)  {  	struct rpc_cred *cred = task->tk_msg.rpc_cred; -	int ret;  	dprintk("RPC: %5u using %s cred %p to wrap rpc data\n",  			task->tk_pid, cred->cr_ops->cr_name, cred);  	if (cred->cr_ops->crwrap_req)  		return cred->cr_ops->crwrap_req(task, encode, rqstp, data, obj);  	/* By default, we encode the arguments normally. */ -	lock_kernel(); -	ret = encode(rqstp, data, obj); -	unlock_kernel(); -	return ret; +	return rpc_call_xdrproc(encode, rqstp, data, obj);  }  int @@ -494,7 +489,6 @@ rpcauth_unwrap_resp(struct rpc_task *task, kxdrproc_t decode, void *rqstp,  		__be32 *data, void *obj)  {  	struct rpc_cred *cred = task->tk_msg.rpc_cred; -	int ret;  	dprintk("RPC: %5u using %s cred %p to unwrap rpc data\n",  			task->tk_pid, cred->cr_ops->cr_name, cred); @@ -502,10 +496,7 @@ rpcauth_unwrap_resp(struct rpc_task *task, kxdrproc_t decode, void *rqstp,  		return cred->cr_ops->crunwrap_resp(task, decode, rqstp,  						   data, obj);  	/* By default, we decode the arguments normally. */ -	lock_kernel(); -	ret = decode(rqstp, data, obj); -	unlock_kernel(); -	return ret; +	return rpc_call_xdrproc(decode, rqstp, data, obj);  }  int  |