diff options
| author | Dave Jones <davej@redhat.com> | 2006-12-12 17:41:41 -0500 | 
|---|---|---|
| committer | Dave Jones <davej@redhat.com> | 2006-12-12 17:41:41 -0500 | 
| commit | c4366889dda8110247be59ca41fddb82951a8c26 (patch) | |
| tree | 705c1a996bed8fd48ce94ff33ec9fd00f9b94875 /fs/lockd | |
| parent | db2fb9db5735cc532fd4fc55e94b9a3c3750378e (diff) | |
| parent | e1036502e5263851259d147771226161e5ccc85a (diff) | |
Merge ../linus
Conflicts:
	drivers/cpufreq/cpufreq.c
Diffstat (limited to 'fs/lockd')
| -rw-r--r-- | fs/lockd/clntlock.c | 6 | ||||
| -rw-r--r-- | fs/lockd/clntproc.c | 5 | ||||
| -rw-r--r-- | fs/lockd/host.c | 53 | ||||
| -rw-r--r-- | fs/lockd/mon.c | 12 | ||||
| -rw-r--r-- | fs/lockd/svc.c | 3 | ||||
| -rw-r--r-- | fs/lockd/svc4proc.c | 58 | ||||
| -rw-r--r-- | fs/lockd/svclock.c | 26 | ||||
| -rw-r--r-- | fs/lockd/svcproc.c | 64 | ||||
| -rw-r--r-- | fs/lockd/svcshare.c | 4 | ||||
| -rw-r--r-- | fs/lockd/svcsubs.c | 23 | ||||
| -rw-r--r-- | fs/lockd/xdr.c | 76 | ||||
| -rw-r--r-- | fs/lockd/xdr4.c | 80 | 
12 files changed, 208 insertions, 202 deletions
| diff --git a/fs/lockd/clntlock.c b/fs/lockd/clntlock.c index e8c7765419e8..92681c9e9b20 100644 --- a/fs/lockd/clntlock.c +++ b/fs/lockd/clntlock.c @@ -100,12 +100,12 @@ int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout)  /*   * The server lockd has called us back to tell us the lock was granted   */ -u32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *lock) +__be32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *lock)  {  	const struct file_lock *fl = &lock->fl;  	const struct nfs_fh *fh = &lock->fh;  	struct nlm_wait	*block; -	u32 res = nlm_lck_denied; +	__be32 res = nlm_lck_denied;  	/*  	 * Look up blocked request based on arguments.  @@ -126,7 +126,7 @@ u32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *lock)  			continue;  		if (!nlm_cmp_addr(&block->b_host->h_addr, addr))  			continue; -		if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_dentry->d_inode) ,fh) != 0) +		if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_path.dentry->d_inode) ,fh) != 0)  			continue;  		/* Alright, we found a lock. Set the return status  		 * and wake up the caller diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c index 3d84f600b633..80a1a6dccc8f 100644 --- a/fs/lockd/clntproc.c +++ b/fs/lockd/clntproc.c @@ -13,6 +13,7 @@  #include <linux/nfs_fs.h>  #include <linux/utsname.h>  #include <linux/smp_lock.h> +#include <linux/freezer.h>  #include <linux/sunrpc/clnt.h>  #include <linux/sunrpc/svc.h>  #include <linux/lockd/lockd.h> @@ -128,7 +129,7 @@ static void nlmclnt_setlockargs(struct nlm_rqst *req, struct file_lock *fl)  	nlmclnt_next_cookie(&argp->cookie);  	argp->state   = nsm_local_state; -	memcpy(&lock->fh, NFS_FH(fl->fl_file->f_dentry->d_inode), sizeof(struct nfs_fh)); +	memcpy(&lock->fh, NFS_FH(fl->fl_file->f_path.dentry->d_inode), sizeof(struct nfs_fh));  	lock->caller  = utsname()->nodename;  	lock->oh.data = req->a_owner;  	lock->oh.len  = snprintf(req->a_owner, sizeof(req->a_owner), "%u@%s", @@ -729,7 +730,7 @@ static void nlmclnt_cancel_callback(struct rpc_task *task, void *data)  		goto retry_cancel;  	} -	dprintk("lockd: cancel status %d (task %d)\n", +	dprintk("lockd: cancel status %u (task %u)\n",  			req->a_res.status, task->tk_pid);  	switch (req->a_res.status) { diff --git a/fs/lockd/host.c b/fs/lockd/host.c index fb24a9730345..3d4610c2a266 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c @@ -36,34 +36,14 @@ static DEFINE_MUTEX(nlm_host_mutex);  static void			nlm_gc_hosts(void);  static struct nsm_handle *	__nsm_find(const struct sockaddr_in *,  					const char *, int, int); - -/* - * Find an NLM server handle in the cache. If there is none, create it. - */ -struct nlm_host * -nlmclnt_lookup_host(const struct sockaddr_in *sin, int proto, int version, -			const char *hostname, int hostname_len) -{ -	return nlm_lookup_host(0, sin, proto, version, -			       hostname, hostname_len); -} - -/* - * Find an NLM client handle in the cache. If there is none, create it. - */ -struct nlm_host * -nlmsvc_lookup_host(struct svc_rqst *rqstp, -			const char *hostname, int hostname_len) -{ -	return nlm_lookup_host(1, &rqstp->rq_addr, -			       rqstp->rq_prot, rqstp->rq_vers, -			       hostname, hostname_len); -} +static struct nsm_handle *	nsm_find(const struct sockaddr_in *sin, +					 const char *hostname, +					 int hostname_len);  /*   * Common host lookup routine for server & client   */ -struct nlm_host * +static struct nlm_host *  nlm_lookup_host(int server, const struct sockaddr_in *sin,  					int proto, int version,  					const char *hostname, @@ -195,6 +175,29 @@ nlm_destroy_host(struct nlm_host *host)  }  /* + * Find an NLM server handle in the cache. If there is none, create it. + */ +struct nlm_host * +nlmclnt_lookup_host(const struct sockaddr_in *sin, int proto, int version, +			const char *hostname, int hostname_len) +{ +	return nlm_lookup_host(0, sin, proto, version, +			       hostname, hostname_len); +} + +/* + * Find an NLM client handle in the cache. If there is none, create it. + */ +struct nlm_host * +nlmsvc_lookup_host(struct svc_rqst *rqstp, +			const char *hostname, int hostname_len) +{ +	return nlm_lookup_host(1, &rqstp->rq_addr, +			       rqstp->rq_prot, rqstp->rq_vers, +			       hostname, hostname_len); +} + +/*   * Create the NLM RPC client for an NLM peer   */  struct rpc_clnt * @@ -495,7 +498,7 @@ out:  	return nsm;  } -struct nsm_handle * +static struct nsm_handle *  nsm_find(const struct sockaddr_in *sin, const char *hostname, int hostname_len)  {  	return __nsm_find(sin, hostname, hostname_len, 1); diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c index e0179f8c327f..eb243edf8932 100644 --- a/fs/lockd/mon.c +++ b/fs/lockd/mon.c @@ -148,8 +148,8 @@ nsm_create(void)   * XDR functions for NSM.   */ -static u32 * -xdr_encode_common(struct rpc_rqst *rqstp, u32 *p, struct nsm_args *argp) +static __be32 * +xdr_encode_common(struct rpc_rqst *rqstp, __be32 *p, struct nsm_args *argp)  {  	char	buffer[20], *name; @@ -176,7 +176,7 @@ xdr_encode_common(struct rpc_rqst *rqstp, u32 *p, struct nsm_args *argp)  }  static int -xdr_encode_mon(struct rpc_rqst *rqstp, u32 *p, struct nsm_args *argp) +xdr_encode_mon(struct rpc_rqst *rqstp, __be32 *p, struct nsm_args *argp)  {  	p = xdr_encode_common(rqstp, p, argp);  	if (IS_ERR(p)) @@ -192,7 +192,7 @@ xdr_encode_mon(struct rpc_rqst *rqstp, u32 *p, struct nsm_args *argp)  }  static int -xdr_encode_unmon(struct rpc_rqst *rqstp, u32 *p, struct nsm_args *argp) +xdr_encode_unmon(struct rpc_rqst *rqstp, __be32 *p, struct nsm_args *argp)  {  	p = xdr_encode_common(rqstp, p, argp);  	if (IS_ERR(p)) @@ -202,7 +202,7 @@ xdr_encode_unmon(struct rpc_rqst *rqstp, u32 *p, struct nsm_args *argp)  }  static int -xdr_decode_stat_res(struct rpc_rqst *rqstp, u32 *p, struct nsm_res *resp) +xdr_decode_stat_res(struct rpc_rqst *rqstp, __be32 *p, struct nsm_res *resp)  {  	resp->status = ntohl(*p++);  	resp->state = ntohl(*p++); @@ -212,7 +212,7 @@ xdr_decode_stat_res(struct rpc_rqst *rqstp, u32 *p, struct nsm_res *resp)  }  static int -xdr_decode_stat(struct rpc_rqst *rqstp, u32 *p, struct nsm_res *resp) +xdr_decode_stat(struct rpc_rqst *rqstp, __be32 *p, struct nsm_res *resp)  {  	resp->state = ntohl(*p++);  	return 0; diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c index 634139232aaf..8ca18085e68d 100644 --- a/fs/lockd/svc.c +++ b/fs/lockd/svc.c @@ -353,9 +353,6 @@ EXPORT_SYMBOL(lockd_down);   * Sysctl parameters (same as module parameters, different interface).   */ -/* Something that isn't CTL_ANY, CTL_NONE or a value that may clash. */ -#define CTL_UNNUMBERED		-2 -  static ctl_table nlm_sysctls[] = {  	{  		.ctl_name	= CTL_UNNUMBERED, diff --git a/fs/lockd/svc4proc.c b/fs/lockd/svc4proc.c index fa370f6eb07b..f67146a8199a 100644 --- a/fs/lockd/svc4proc.c +++ b/fs/lockd/svc4proc.c @@ -24,14 +24,14 @@  /*   * Obtain client and file from arguments   */ -static u32 +static __be32  nlm4svc_retrieve_args(struct svc_rqst *rqstp, struct nlm_args *argp,  			struct nlm_host **hostp, struct nlm_file **filp)  {  	struct nlm_host		*host = NULL;  	struct nlm_file		*file = NULL;  	struct nlm_lock		*lock = &argp->lock; -	u32			error = 0; +	__be32			error = 0;  	/* nfsd callbacks must have been installed for this procedure */  	if (!nlmsvc_ops) @@ -68,7 +68,7 @@ no_locks:  /*   * NULL: Test for presence of service   */ -static int +static __be32  nlm4svc_proc_null(struct svc_rqst *rqstp, void *argp, void *resp)  {  	dprintk("lockd: NULL          called\n"); @@ -78,7 +78,7 @@ nlm4svc_proc_null(struct svc_rqst *rqstp, void *argp, void *resp)  /*   * TEST: Check for conflicting lock   */ -static int +static __be32  nlm4svc_proc_test(struct svc_rqst *rqstp, struct nlm_args *argp,  				         struct nlm_res  *resp)  { @@ -96,7 +96,7 @@ nlm4svc_proc_test(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Now check for conflicting locks */  	resp->status = nlmsvc_testlock(file, &argp->lock, &resp->lock); @@ -107,7 +107,7 @@ nlm4svc_proc_test(struct svc_rqst *rqstp, struct nlm_args *argp,  	return rpc_success;  } -static int +static __be32  nlm4svc_proc_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  				         struct nlm_res  *resp)  { @@ -126,7 +126,7 @@ nlm4svc_proc_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  #if 0  	/* If supplied state doesn't match current state, we assume it's @@ -150,7 +150,7 @@ nlm4svc_proc_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  	return rpc_success;  } -static int +static __be32  nlm4svc_proc_cancel(struct svc_rqst *rqstp, struct nlm_args *argp,  				           struct nlm_res  *resp)  { @@ -169,7 +169,7 @@ nlm4svc_proc_cancel(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Try to cancel request. */  	resp->status = nlmsvc_cancel_blocked(file, &argp->lock); @@ -183,7 +183,7 @@ nlm4svc_proc_cancel(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * UNLOCK: release a lock   */ -static int +static __be32  nlm4svc_proc_unlock(struct svc_rqst *rqstp, struct nlm_args *argp,  				           struct nlm_res  *resp)  { @@ -202,7 +202,7 @@ nlm4svc_proc_unlock(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Now try to remove the lock */  	resp->status = nlmsvc_unlock(file, &argp->lock); @@ -217,7 +217,7 @@ nlm4svc_proc_unlock(struct svc_rqst *rqstp, struct nlm_args *argp,   * GRANTED: A server calls us to tell that a process' lock request   * was granted   */ -static int +static __be32  nlm4svc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp,  				            struct nlm_res  *resp)  { @@ -234,7 +234,7 @@ nlm4svc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp,   */  static void nlm4svc_callback_exit(struct rpc_task *task, void *data)  { -	dprintk("lockd: %4d callback returned %d\n", task->tk_pid, +	dprintk("lockd: %5u callback returned %d\n", task->tk_pid,  			-task->tk_status);  } @@ -253,12 +253,12 @@ static const struct rpc_call_ops nlm4svc_callback_ops = {   * because we send the callback before the reply proper. I hope this   * doesn't break any clients.   */ -static int nlm4svc_callback(struct svc_rqst *rqstp, u32 proc, struct nlm_args *argp, -		int (*func)(struct svc_rqst *, struct nlm_args *, struct nlm_res  *)) +static __be32 nlm4svc_callback(struct svc_rqst *rqstp, u32 proc, struct nlm_args *argp, +		__be32 (*func)(struct svc_rqst *, struct nlm_args *, struct nlm_res  *))  {  	struct nlm_host	*host;  	struct nlm_rqst	*call; -	int stat; +	__be32 stat;  	host = nlmsvc_lookup_host(rqstp,  				  argp->lock.caller, @@ -282,35 +282,35 @@ static int nlm4svc_callback(struct svc_rqst *rqstp, u32 proc, struct nlm_args *a  	return rpc_success;  } -static int nlm4svc_proc_test_msg(struct svc_rqst *rqstp, struct nlm_args *argp, +static __be32 nlm4svc_proc_test_msg(struct svc_rqst *rqstp, struct nlm_args *argp,  					     void	     *resp)  {  	dprintk("lockd: TEST_MSG      called\n");  	return nlm4svc_callback(rqstp, NLMPROC_TEST_RES, argp, nlm4svc_proc_test);  } -static int nlm4svc_proc_lock_msg(struct svc_rqst *rqstp, struct nlm_args *argp, +static __be32 nlm4svc_proc_lock_msg(struct svc_rqst *rqstp, struct nlm_args *argp,  					     void	     *resp)  {  	dprintk("lockd: LOCK_MSG      called\n");  	return nlm4svc_callback(rqstp, NLMPROC_LOCK_RES, argp, nlm4svc_proc_lock);  } -static int nlm4svc_proc_cancel_msg(struct svc_rqst *rqstp, struct nlm_args *argp, +static __be32 nlm4svc_proc_cancel_msg(struct svc_rqst *rqstp, struct nlm_args *argp,  					       void	       *resp)  {  	dprintk("lockd: CANCEL_MSG    called\n");  	return nlm4svc_callback(rqstp, NLMPROC_CANCEL_RES, argp, nlm4svc_proc_cancel);  } -static int nlm4svc_proc_unlock_msg(struct svc_rqst *rqstp, struct nlm_args *argp, +static __be32 nlm4svc_proc_unlock_msg(struct svc_rqst *rqstp, struct nlm_args *argp,                                                 void            *resp)  {  	dprintk("lockd: UNLOCK_MSG    called\n");  	return nlm4svc_callback(rqstp, NLMPROC_UNLOCK_RES, argp, nlm4svc_proc_unlock);  } -static int nlm4svc_proc_granted_msg(struct svc_rqst *rqstp, struct nlm_args *argp, +static __be32 nlm4svc_proc_granted_msg(struct svc_rqst *rqstp, struct nlm_args *argp,                                                  void            *resp)  {  	dprintk("lockd: GRANTED_MSG   called\n"); @@ -320,7 +320,7 @@ static int nlm4svc_proc_granted_msg(struct svc_rqst *rqstp, struct nlm_args *arg  /*   * SHARE: create a DOS share or alter existing share.   */ -static int +static __be32  nlm4svc_proc_share(struct svc_rqst *rqstp, struct nlm_args *argp,  				          struct nlm_res  *resp)  { @@ -339,7 +339,7 @@ nlm4svc_proc_share(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Now try to create the share */  	resp->status = nlmsvc_share_file(host, file, argp); @@ -353,7 +353,7 @@ nlm4svc_proc_share(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * UNSHARE: Release a DOS share.   */ -static int +static __be32  nlm4svc_proc_unshare(struct svc_rqst *rqstp, struct nlm_args *argp,  				            struct nlm_res  *resp)  { @@ -372,7 +372,7 @@ nlm4svc_proc_unshare(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Now try to lock the file */  	resp->status = nlmsvc_unshare_file(host, file, argp); @@ -386,7 +386,7 @@ nlm4svc_proc_unshare(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * NM_LOCK: Create an unmonitored lock   */ -static int +static __be32  nlm4svc_proc_nm_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  				            struct nlm_res  *resp)  { @@ -399,7 +399,7 @@ nlm4svc_proc_nm_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * FREE_ALL: Release all locks and shares held by client   */ -static int +static __be32  nlm4svc_proc_free_all(struct svc_rqst *rqstp, struct nlm_args *argp,  					     void            *resp)  { @@ -417,7 +417,7 @@ nlm4svc_proc_free_all(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * SM_NOTIFY: private callback from statd (not part of official NLM proto)   */ -static int +static __be32  nlm4svc_proc_sm_notify(struct svc_rqst *rqstp, struct nlm_reboot *argp,  					      void	        *resp)  { @@ -446,7 +446,7 @@ nlm4svc_proc_sm_notify(struct svc_rqst *rqstp, struct nlm_reboot *argp,  /*   * client sent a GRANTED_RES, let's remove the associated block   */ -static int +static __be32  nlm4svc_proc_granted_res(struct svc_rqst *rqstp, struct nlm_res  *argp,                                                  void            *resp)  { diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c index 814c6064c9e0..5c054b20fd5e 100644 --- a/fs/lockd/svclock.c +++ b/fs/lockd/svclock.c @@ -334,17 +334,17 @@ static void nlmsvc_freegrantargs(struct nlm_rqst *call)   * Attempt to establish a lock, and if it can't be granted, block it   * if required.   */ -u32 +__be32  nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file,  			struct nlm_lock *lock, int wait, struct nlm_cookie *cookie)  {  	struct nlm_block	*block, *newblock = NULL;  	int			error; -	u32			ret; +	__be32			ret;  	dprintk("lockd: nlmsvc_lock(%s/%ld, ty=%d, pi=%d, %Ld-%Ld, bl=%d)\n", -				file->f_file->f_dentry->d_inode->i_sb->s_id, -				file->f_file->f_dentry->d_inode->i_ino, +				file->f_file->f_path.dentry->d_inode->i_sb->s_id, +				file->f_file->f_path.dentry->d_inode->i_ino,  				lock->fl.fl_type, lock->fl.fl_pid,  				(long long)lock->fl.fl_start,  				(long long)lock->fl.fl_end, @@ -415,13 +415,13 @@ out:  /*   * Test for presence of a conflicting lock.   */ -u32 +__be32  nlmsvc_testlock(struct nlm_file *file, struct nlm_lock *lock,  				       struct nlm_lock *conflock)  {  	dprintk("lockd: nlmsvc_testlock(%s/%ld, ty=%d, %Ld-%Ld)\n", -				file->f_file->f_dentry->d_inode->i_sb->s_id, -				file->f_file->f_dentry->d_inode->i_ino, +				file->f_file->f_path.dentry->d_inode->i_sb->s_id, +				file->f_file->f_path.dentry->d_inode->i_ino,  				lock->fl.fl_type,  				(long long)lock->fl.fl_start,  				(long long)lock->fl.fl_end); @@ -448,14 +448,14 @@ nlmsvc_testlock(struct nlm_file *file, struct nlm_lock *lock,   * afterwards. In this case the block will still be there, and hence   * must be removed.   */ -u32 +__be32  nlmsvc_unlock(struct nlm_file *file, struct nlm_lock *lock)  {  	int	error;  	dprintk("lockd: nlmsvc_unlock(%s/%ld, pi=%d, %Ld-%Ld)\n", -				file->f_file->f_dentry->d_inode->i_sb->s_id, -				file->f_file->f_dentry->d_inode->i_ino, +				file->f_file->f_path.dentry->d_inode->i_sb->s_id, +				file->f_file->f_path.dentry->d_inode->i_ino,  				lock->fl.fl_pid,  				(long long)lock->fl.fl_start,  				(long long)lock->fl.fl_end); @@ -476,15 +476,15 @@ nlmsvc_unlock(struct nlm_file *file, struct nlm_lock *lock)   * be in progress.   * The calling procedure must check whether the file can be closed.   */ -u32 +__be32  nlmsvc_cancel_blocked(struct nlm_file *file, struct nlm_lock *lock)  {  	struct nlm_block	*block;  	int status = 0;  	dprintk("lockd: nlmsvc_cancel(%s/%ld, pi=%d, %Ld-%Ld)\n", -				file->f_file->f_dentry->d_inode->i_sb->s_id, -				file->f_file->f_dentry->d_inode->i_ino, +				file->f_file->f_path.dentry->d_inode->i_sb->s_id, +				file->f_file->f_path.dentry->d_inode->i_ino,  				lock->fl.fl_pid,  				(long long)lock->fl.fl_start,  				(long long)lock->fl.fl_end); diff --git a/fs/lockd/svcproc.c b/fs/lockd/svcproc.c index 75b2c81bcb93..3707c3a23e93 100644 --- a/fs/lockd/svcproc.c +++ b/fs/lockd/svcproc.c @@ -22,8 +22,8 @@  #define NLMDBG_FACILITY		NLMDBG_CLIENT  #ifdef CONFIG_LOCKD_V4 -static u32 -cast_to_nlm(u32 status, u32 vers) +static __be32 +cast_to_nlm(__be32 status, u32 vers)  {  	/* Note: status is assumed to be in network byte order !!! */  	if (vers != 4){ @@ -52,14 +52,14 @@ cast_to_nlm(u32 status, u32 vers)  /*   * Obtain client and file from arguments   */ -static u32 +static __be32  nlmsvc_retrieve_args(struct svc_rqst *rqstp, struct nlm_args *argp,  			struct nlm_host **hostp, struct nlm_file **filp)  {  	struct nlm_host		*host = NULL;  	struct nlm_file		*file = NULL;  	struct nlm_lock		*lock = &argp->lock; -	u32			error; +	__be32			error = 0;  	/* nfsd callbacks must have been installed for this procedure */  	if (!nlmsvc_ops) @@ -88,13 +88,15 @@ nlmsvc_retrieve_args(struct svc_rqst *rqstp, struct nlm_args *argp,  no_locks:  	if (host)  		nlm_release_host(host); +	if (error) +		return error;  	return nlm_lck_denied_nolocks;  }  /*   * NULL: Test for presence of service   */ -static int +static __be32  nlmsvc_proc_null(struct svc_rqst *rqstp, void *argp, void *resp)  {  	dprintk("lockd: NULL          called\n"); @@ -104,7 +106,7 @@ nlmsvc_proc_null(struct svc_rqst *rqstp, void *argp, void *resp)  /*   * TEST: Check for conflicting lock   */ -static int +static __be32  nlmsvc_proc_test(struct svc_rqst *rqstp, struct nlm_args *argp,  				         struct nlm_res  *resp)  { @@ -122,7 +124,7 @@ nlmsvc_proc_test(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Now check for conflicting locks */  	resp->status = cast_status(nlmsvc_testlock(file, &argp->lock, &resp->lock)); @@ -134,7 +136,7 @@ nlmsvc_proc_test(struct svc_rqst *rqstp, struct nlm_args *argp,  	return rpc_success;  } -static int +static __be32  nlmsvc_proc_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  				         struct nlm_res  *resp)  { @@ -153,7 +155,7 @@ nlmsvc_proc_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  #if 0  	/* If supplied state doesn't match current state, we assume it's @@ -177,7 +179,7 @@ nlmsvc_proc_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  	return rpc_success;  } -static int +static __be32  nlmsvc_proc_cancel(struct svc_rqst *rqstp, struct nlm_args *argp,  				           struct nlm_res  *resp)  { @@ -196,7 +198,7 @@ nlmsvc_proc_cancel(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Try to cancel request. */  	resp->status = cast_status(nlmsvc_cancel_blocked(file, &argp->lock)); @@ -210,7 +212,7 @@ nlmsvc_proc_cancel(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * UNLOCK: release a lock   */ -static int +static __be32  nlmsvc_proc_unlock(struct svc_rqst *rqstp, struct nlm_args *argp,  				           struct nlm_res  *resp)  { @@ -229,7 +231,7 @@ nlmsvc_proc_unlock(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Now try to remove the lock */  	resp->status = cast_status(nlmsvc_unlock(file, &argp->lock)); @@ -244,7 +246,7 @@ nlmsvc_proc_unlock(struct svc_rqst *rqstp, struct nlm_args *argp,   * GRANTED: A server calls us to tell that a process' lock request   * was granted   */ -static int +static __be32  nlmsvc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp,  				            struct nlm_res  *resp)  { @@ -261,7 +263,7 @@ nlmsvc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp,   */  static void nlmsvc_callback_exit(struct rpc_task *task, void *data)  { -	dprintk("lockd: %4d callback returned %d\n", task->tk_pid, +	dprintk("lockd: %5u callback returned %d\n", task->tk_pid,  			-task->tk_status);  } @@ -280,12 +282,12 @@ static const struct rpc_call_ops nlmsvc_callback_ops = {   * because we send the callback before the reply proper. I hope this   * doesn't break any clients.   */ -static int nlmsvc_callback(struct svc_rqst *rqstp, u32 proc, struct nlm_args *argp, -		int (*func)(struct svc_rqst *, struct nlm_args *, struct nlm_res  *)) +static __be32 nlmsvc_callback(struct svc_rqst *rqstp, u32 proc, struct nlm_args *argp, +		__be32 (*func)(struct svc_rqst *, struct nlm_args *, struct nlm_res  *))  {  	struct nlm_host	*host;  	struct nlm_rqst	*call; -	int stat; +	__be32 stat;  	host = nlmsvc_lookup_host(rqstp,  				  argp->lock.caller, @@ -309,28 +311,28 @@ static int nlmsvc_callback(struct svc_rqst *rqstp, u32 proc, struct nlm_args *ar  	return rpc_success;  } -static int nlmsvc_proc_test_msg(struct svc_rqst *rqstp, struct nlm_args *argp, +static __be32 nlmsvc_proc_test_msg(struct svc_rqst *rqstp, struct nlm_args *argp,  					     void	     *resp)  {  	dprintk("lockd: TEST_MSG      called\n");  	return nlmsvc_callback(rqstp, NLMPROC_TEST_RES, argp, nlmsvc_proc_test);  } -static int nlmsvc_proc_lock_msg(struct svc_rqst *rqstp, struct nlm_args *argp, +static __be32 nlmsvc_proc_lock_msg(struct svc_rqst *rqstp, struct nlm_args *argp,  					     void	     *resp)  {  	dprintk("lockd: LOCK_MSG      called\n");  	return nlmsvc_callback(rqstp, NLMPROC_LOCK_RES, argp, nlmsvc_proc_lock);  } -static int nlmsvc_proc_cancel_msg(struct svc_rqst *rqstp, struct nlm_args *argp, +static __be32 nlmsvc_proc_cancel_msg(struct svc_rqst *rqstp, struct nlm_args *argp,  					       void	       *resp)  {  	dprintk("lockd: CANCEL_MSG    called\n");  	return nlmsvc_callback(rqstp, NLMPROC_CANCEL_RES, argp, nlmsvc_proc_cancel);  } -static int +static __be32  nlmsvc_proc_unlock_msg(struct svc_rqst *rqstp, struct nlm_args *argp,                                                 void            *resp)  { @@ -338,7 +340,7 @@ nlmsvc_proc_unlock_msg(struct svc_rqst *rqstp, struct nlm_args *argp,  	return nlmsvc_callback(rqstp, NLMPROC_UNLOCK_RES, argp, nlmsvc_proc_unlock);  } -static int +static __be32  nlmsvc_proc_granted_msg(struct svc_rqst *rqstp, struct nlm_args *argp,                                                  void            *resp)  { @@ -349,7 +351,7 @@ nlmsvc_proc_granted_msg(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * SHARE: create a DOS share or alter existing share.   */ -static int +static __be32  nlmsvc_proc_share(struct svc_rqst *rqstp, struct nlm_args *argp,  				          struct nlm_res  *resp)  { @@ -368,7 +370,7 @@ nlmsvc_proc_share(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Now try to create the share */  	resp->status = cast_status(nlmsvc_share_file(host, file, argp)); @@ -382,7 +384,7 @@ nlmsvc_proc_share(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * UNSHARE: Release a DOS share.   */ -static int +static __be32  nlmsvc_proc_unshare(struct svc_rqst *rqstp, struct nlm_args *argp,  				            struct nlm_res  *resp)  { @@ -401,7 +403,7 @@ nlmsvc_proc_unshare(struct svc_rqst *rqstp, struct nlm_args *argp,  	/* Obtain client and file */  	if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) -		return rpc_success; +		return resp->status == nlm_drop_reply ? rpc_drop_reply :rpc_success;  	/* Now try to unshare the file */  	resp->status = cast_status(nlmsvc_unshare_file(host, file, argp)); @@ -415,7 +417,7 @@ nlmsvc_proc_unshare(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * NM_LOCK: Create an unmonitored lock   */ -static int +static __be32  nlmsvc_proc_nm_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  				            struct nlm_res  *resp)  { @@ -428,7 +430,7 @@ nlmsvc_proc_nm_lock(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * FREE_ALL: Release all locks and shares held by client   */ -static int +static __be32  nlmsvc_proc_free_all(struct svc_rqst *rqstp, struct nlm_args *argp,  					     void            *resp)  { @@ -446,7 +448,7 @@ nlmsvc_proc_free_all(struct svc_rqst *rqstp, struct nlm_args *argp,  /*   * SM_NOTIFY: private callback from statd (not part of official NLM proto)   */ -static int +static __be32  nlmsvc_proc_sm_notify(struct svc_rqst *rqstp, struct nlm_reboot *argp,  					      void	        *resp)  { @@ -475,7 +477,7 @@ nlmsvc_proc_sm_notify(struct svc_rqst *rqstp, struct nlm_reboot *argp,  /*   * client sent a GRANTED_RES, let's remove the associated block   */ -static int +static __be32  nlmsvc_proc_granted_res(struct svc_rqst *rqstp, struct nlm_res  *argp,                                                  void            *resp)  { diff --git a/fs/lockd/svcshare.c b/fs/lockd/svcshare.c index b9926ce8782e..6220dc2a3f2c 100644 --- a/fs/lockd/svcshare.c +++ b/fs/lockd/svcshare.c @@ -23,7 +23,7 @@ nlm_cmp_owner(struct nlm_share *share, struct xdr_netobj *oh)  	    && !memcmp(share->s_owner.data, oh->data, oh->len);  } -u32 +__be32  nlmsvc_share_file(struct nlm_host *host, struct nlm_file *file,  			struct nlm_args *argp)  { @@ -64,7 +64,7 @@ update:  /*   * Delete a share.   */ -u32 +__be32  nlmsvc_unshare_file(struct nlm_host *host, struct nlm_file *file,  			struct nlm_args *argp)  { diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c index 514f5f20701e..c0df00c74ce3 100644 --- a/fs/lockd/svcsubs.c +++ b/fs/lockd/svcsubs.c @@ -43,7 +43,7 @@ static inline void nlm_debug_print_fh(char *msg, struct nfs_fh *f)  static inline void nlm_debug_print_file(char *msg, struct nlm_file *file)  { -	struct inode *inode = file->f_file->f_dentry->d_inode; +	struct inode *inode = file->f_file->f_path.dentry->d_inode;  	dprintk("lockd: %s %s/%ld\n",  		msg, inode->i_sb->s_id, inode->i_ino); @@ -78,14 +78,14 @@ static inline unsigned int file_hash(struct nfs_fh *f)   * This is not quite right, but for now, we assume the client performs   * the proper R/W checking.   */ -u32 +__be32  nlm_lookup_file(struct svc_rqst *rqstp, struct nlm_file **result,  					struct nfs_fh *f)  {  	struct hlist_node *pos;  	struct nlm_file	*file;  	unsigned int	hash; -	u32		nfserr; +	__be32		nfserr;  	nlm_debug_print_fh("nlm_file_lookup", f); @@ -135,12 +135,6 @@ out_unlock:  out_free:  	kfree(file); -#ifdef CONFIG_LOCKD_V4 -	if (nfserr == 1) -		nfserr = nlm4_stale_fh; -	else -#endif -	nfserr = nlm_lck_denied;  	goto out_unlock;  } @@ -324,7 +318,16 @@ nlmsvc_same_host(struct nlm_host *host, struct nlm_host *other)  static int  nlmsvc_is_client(struct nlm_host *host, struct nlm_host *dummy)  { -	return host->h_server; +	if (host->h_server) { +		/* we are destroying locks even though the client +		 * hasn't asked us too, so don't unmonitor the +		 * client +		 */ +		if (host->h_nsmhandle) +			host->h_nsmhandle->sm_sticky = 1; +		return 1; +	} else +		return 0;  }  /* diff --git a/fs/lockd/xdr.c b/fs/lockd/xdr.c index 61c46facf257..b7c949256e5a 100644 --- a/fs/lockd/xdr.c +++ b/fs/lockd/xdr.c @@ -43,7 +43,7 @@ loff_t_to_s32(loff_t offset)  /*   * XDR functions for basic NLM types   */ -static u32 *nlm_decode_cookie(u32 *p, struct nlm_cookie *c) +static __be32 *nlm_decode_cookie(__be32 *p, struct nlm_cookie *c)  {  	unsigned int	len; @@ -69,8 +69,8 @@ static u32 *nlm_decode_cookie(u32 *p, struct nlm_cookie *c)  	return p;  } -static inline u32 * -nlm_encode_cookie(u32 *p, struct nlm_cookie *c) +static inline __be32 * +nlm_encode_cookie(__be32 *p, struct nlm_cookie *c)  {  	*p++ = htonl(c->len);  	memcpy(p, c->data, c->len); @@ -78,8 +78,8 @@ nlm_encode_cookie(u32 *p, struct nlm_cookie *c)  	return p;  } -static u32 * -nlm_decode_fh(u32 *p, struct nfs_fh *f) +static __be32 * +nlm_decode_fh(__be32 *p, struct nfs_fh *f)  {  	unsigned int	len; @@ -95,8 +95,8 @@ nlm_decode_fh(u32 *p, struct nfs_fh *f)  	return p + XDR_QUADLEN(NFS2_FHSIZE);  } -static inline u32 * -nlm_encode_fh(u32 *p, struct nfs_fh *f) +static inline __be32 * +nlm_encode_fh(__be32 *p, struct nfs_fh *f)  {  	*p++ = htonl(NFS2_FHSIZE);  	memcpy(p, f->data, NFS2_FHSIZE); @@ -106,20 +106,20 @@ nlm_encode_fh(u32 *p, struct nfs_fh *f)  /*   * Encode and decode owner handle   */ -static inline u32 * -nlm_decode_oh(u32 *p, struct xdr_netobj *oh) +static inline __be32 * +nlm_decode_oh(__be32 *p, struct xdr_netobj *oh)  {  	return xdr_decode_netobj(p, oh);  } -static inline u32 * -nlm_encode_oh(u32 *p, struct xdr_netobj *oh) +static inline __be32 * +nlm_encode_oh(__be32 *p, struct xdr_netobj *oh)  {  	return xdr_encode_netobj(p, oh);  } -static u32 * -nlm_decode_lock(u32 *p, struct nlm_lock *lock) +static __be32 * +nlm_decode_lock(__be32 *p, struct nlm_lock *lock)  {  	struct file_lock	*fl = &lock->fl;  	s32			start, len, end; @@ -153,8 +153,8 @@ nlm_decode_lock(u32 *p, struct nlm_lock *lock)  /*   * Encode a lock as part of an NLM call   */ -static u32 * -nlm_encode_lock(u32 *p, struct nlm_lock *lock) +static __be32 * +nlm_encode_lock(__be32 *p, struct nlm_lock *lock)  {  	struct file_lock	*fl = &lock->fl;  	__s32			start, len; @@ -184,8 +184,8 @@ nlm_encode_lock(u32 *p, struct nlm_lock *lock)  /*   * Encode result of a TEST/TEST_MSG call   */ -static u32 * -nlm_encode_testres(u32 *p, struct nlm_res *resp) +static __be32 * +nlm_encode_testres(__be32 *p, struct nlm_res *resp)  {  	s32		start, len; @@ -221,7 +221,7 @@ nlm_encode_testres(u32 *p, struct nlm_res *resp)   * First, the server side XDR functions   */  int -nlmsvc_decode_testargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlmsvc_decode_testargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	u32	exclusive; @@ -238,7 +238,7 @@ nlmsvc_decode_testargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlmsvc_encode_testres(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp) +nlmsvc_encode_testres(struct svc_rqst *rqstp, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm_encode_testres(p, resp)))  		return 0; @@ -246,7 +246,7 @@ nlmsvc_encode_testres(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp)  }  int -nlmsvc_decode_lockargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlmsvc_decode_lockargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	u32	exclusive; @@ -266,7 +266,7 @@ nlmsvc_decode_lockargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlmsvc_decode_cancargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlmsvc_decode_cancargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	u32	exclusive; @@ -282,7 +282,7 @@ nlmsvc_decode_cancargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlmsvc_decode_unlockargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlmsvc_decode_unlockargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	if (!(p = nlm_decode_cookie(p, &argp->cookie))  	 || !(p = nlm_decode_lock(p, &argp->lock))) @@ -292,7 +292,7 @@ nlmsvc_decode_unlockargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlmsvc_decode_shareargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlmsvc_decode_shareargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -313,7 +313,7 @@ nlmsvc_decode_shareargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlmsvc_encode_shareres(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp) +nlmsvc_encode_shareres(struct svc_rqst *rqstp, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm_encode_cookie(p, &resp->cookie)))  		return 0; @@ -323,7 +323,7 @@ nlmsvc_encode_shareres(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp)  }  int -nlmsvc_encode_res(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp) +nlmsvc_encode_res(struct svc_rqst *rqstp, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm_encode_cookie(p, &resp->cookie)))  		return 0; @@ -332,7 +332,7 @@ nlmsvc_encode_res(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp)  }  int -nlmsvc_decode_notify(struct svc_rqst *rqstp, u32 *p, struct nlm_args *argp) +nlmsvc_decode_notify(struct svc_rqst *rqstp, __be32 *p, struct nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -344,7 +344,7 @@ nlmsvc_decode_notify(struct svc_rqst *rqstp, u32 *p, struct nlm_args *argp)  }  int -nlmsvc_decode_reboot(struct svc_rqst *rqstp, u32 *p, struct nlm_reboot *argp) +nlmsvc_decode_reboot(struct svc_rqst *rqstp, __be32 *p, struct nlm_reboot *argp)  {  	if (!(p = xdr_decode_string_inplace(p, &argp->mon, &argp->len, SM_MAXSTRLEN)))  		return 0; @@ -357,7 +357,7 @@ nlmsvc_decode_reboot(struct svc_rqst *rqstp, u32 *p, struct nlm_reboot *argp)  }  int -nlmsvc_decode_res(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp) +nlmsvc_decode_res(struct svc_rqst *rqstp, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm_decode_cookie(p, &resp->cookie)))  		return 0; @@ -366,13 +366,13 @@ nlmsvc_decode_res(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp)  }  int -nlmsvc_decode_void(struct svc_rqst *rqstp, u32 *p, void *dummy) +nlmsvc_decode_void(struct svc_rqst *rqstp, __be32 *p, void *dummy)  {  	return xdr_argsize_check(rqstp, p);  }  int -nlmsvc_encode_void(struct svc_rqst *rqstp, u32 *p, void *dummy) +nlmsvc_encode_void(struct svc_rqst *rqstp, __be32 *p, void *dummy)  {  	return xdr_ressize_check(rqstp, p);  } @@ -389,7 +389,7 @@ nlmclt_decode_void(struct rpc_rqst *req, u32 *p, void *ptr)  #endif  static int -nlmclt_encode_testargs(struct rpc_rqst *req, u32 *p, nlm_args *argp) +nlmclt_encode_testargs(struct rpc_rqst *req, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -403,7 +403,7 @@ nlmclt_encode_testargs(struct rpc_rqst *req, u32 *p, nlm_args *argp)  }  static int -nlmclt_decode_testres(struct rpc_rqst *req, u32 *p, struct nlm_res *resp) +nlmclt_decode_testres(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm_decode_cookie(p, &resp->cookie)))  		return -EIO; @@ -438,7 +438,7 @@ nlmclt_decode_testres(struct rpc_rqst *req, u32 *p, struct nlm_res *resp)  static int -nlmclt_encode_lockargs(struct rpc_rqst *req, u32 *p, nlm_args *argp) +nlmclt_encode_lockargs(struct rpc_rqst *req, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -455,7 +455,7 @@ nlmclt_encode_lockargs(struct rpc_rqst *req, u32 *p, nlm_args *argp)  }  static int -nlmclt_encode_cancargs(struct rpc_rqst *req, u32 *p, nlm_args *argp) +nlmclt_encode_cancargs(struct rpc_rqst *req, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -470,7 +470,7 @@ nlmclt_encode_cancargs(struct rpc_rqst *req, u32 *p, nlm_args *argp)  }  static int -nlmclt_encode_unlockargs(struct rpc_rqst *req, u32 *p, nlm_args *argp) +nlmclt_encode_unlockargs(struct rpc_rqst *req, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -483,7 +483,7 @@ nlmclt_encode_unlockargs(struct rpc_rqst *req, u32 *p, nlm_args *argp)  }  static int -nlmclt_encode_res(struct rpc_rqst *req, u32 *p, struct nlm_res *resp) +nlmclt_encode_res(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm_encode_cookie(p, &resp->cookie)))  		return -EIO; @@ -493,7 +493,7 @@ nlmclt_encode_res(struct rpc_rqst *req, u32 *p, struct nlm_res *resp)  }  static int -nlmclt_encode_testres(struct rpc_rqst *req, u32 *p, struct nlm_res *resp) +nlmclt_encode_testres(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm_encode_testres(p, resp)))  		return -EIO; @@ -502,7 +502,7 @@ nlmclt_encode_testres(struct rpc_rqst *req, u32 *p, struct nlm_res *resp)  }  static int -nlmclt_decode_res(struct rpc_rqst *req, u32 *p, struct nlm_res *resp) +nlmclt_decode_res(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm_decode_cookie(p, &resp->cookie)))  		return -EIO; diff --git a/fs/lockd/xdr4.c b/fs/lockd/xdr4.c index 36eb175ec335..f4c0b2b9f75a 100644 --- a/fs/lockd/xdr4.c +++ b/fs/lockd/xdr4.c @@ -44,8 +44,8 @@ loff_t_to_s64(loff_t offset)  /*   * XDR functions for basic NLM types   */ -static u32 * -nlm4_decode_cookie(u32 *p, struct nlm_cookie *c) +static __be32 * +nlm4_decode_cookie(__be32 *p, struct nlm_cookie *c)  {  	unsigned int	len; @@ -71,8 +71,8 @@ nlm4_decode_cookie(u32 *p, struct nlm_cookie *c)  	return p;  } -static u32 * -nlm4_encode_cookie(u32 *p, struct nlm_cookie *c) +static __be32 * +nlm4_encode_cookie(__be32 *p, struct nlm_cookie *c)  {  	*p++ = htonl(c->len);  	memcpy(p, c->data, c->len); @@ -80,8 +80,8 @@ nlm4_encode_cookie(u32 *p, struct nlm_cookie *c)  	return p;  } -static u32 * -nlm4_decode_fh(u32 *p, struct nfs_fh *f) +static __be32 * +nlm4_decode_fh(__be32 *p, struct nfs_fh *f)  {  	memset(f->data, 0, sizeof(f->data));  	f->size = ntohl(*p++); @@ -95,8 +95,8 @@ nlm4_decode_fh(u32 *p, struct nfs_fh *f)  	return p + XDR_QUADLEN(f->size);  } -static u32 * -nlm4_encode_fh(u32 *p, struct nfs_fh *f) +static __be32 * +nlm4_encode_fh(__be32 *p, struct nfs_fh *f)  {  	*p++ = htonl(f->size);  	if (f->size) p[XDR_QUADLEN(f->size)-1] = 0; /* don't leak anything */ @@ -107,20 +107,20 @@ nlm4_encode_fh(u32 *p, struct nfs_fh *f)  /*   * Encode and decode owner handle   */ -static u32 * -nlm4_decode_oh(u32 *p, struct xdr_netobj *oh) +static __be32 * +nlm4_decode_oh(__be32 *p, struct xdr_netobj *oh)  {  	return xdr_decode_netobj(p, oh);  } -static u32 * -nlm4_encode_oh(u32 *p, struct xdr_netobj *oh) +static __be32 * +nlm4_encode_oh(__be32 *p, struct xdr_netobj *oh)  {  	return xdr_encode_netobj(p, oh);  } -static u32 * -nlm4_decode_lock(u32 *p, struct nlm_lock *lock) +static __be32 * +nlm4_decode_lock(__be32 *p, struct nlm_lock *lock)  {  	struct file_lock	*fl = &lock->fl;  	__s64			len, start, end; @@ -153,8 +153,8 @@ nlm4_decode_lock(u32 *p, struct nlm_lock *lock)  /*   * Encode a lock as part of an NLM call   */ -static u32 * -nlm4_encode_lock(u32 *p, struct nlm_lock *lock) +static __be32 * +nlm4_encode_lock(__be32 *p, struct nlm_lock *lock)  {  	struct file_lock	*fl = &lock->fl;  	__s64			start, len; @@ -185,8 +185,8 @@ nlm4_encode_lock(u32 *p, struct nlm_lock *lock)  /*   * Encode result of a TEST/TEST_MSG call   */ -static u32 * -nlm4_encode_testres(u32 *p, struct nlm_res *resp) +static __be32 * +nlm4_encode_testres(__be32 *p, struct nlm_res *resp)  {  	s64		start, len; @@ -227,7 +227,7 @@ nlm4_encode_testres(u32 *p, struct nlm_res *resp)   * First, the server side XDR functions   */  int -nlm4svc_decode_testargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlm4svc_decode_testargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	u32	exclusive; @@ -244,7 +244,7 @@ nlm4svc_decode_testargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlm4svc_encode_testres(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp) +nlm4svc_encode_testres(struct svc_rqst *rqstp, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm4_encode_testres(p, resp)))  		return 0; @@ -252,7 +252,7 @@ nlm4svc_encode_testres(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp)  }  int -nlm4svc_decode_lockargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlm4svc_decode_lockargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	u32	exclusive; @@ -272,7 +272,7 @@ nlm4svc_decode_lockargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlm4svc_decode_cancargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlm4svc_decode_cancargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	u32	exclusive; @@ -288,7 +288,7 @@ nlm4svc_decode_cancargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlm4svc_decode_unlockargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlm4svc_decode_unlockargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	if (!(p = nlm4_decode_cookie(p, &argp->cookie))  	 || !(p = nlm4_decode_lock(p, &argp->lock))) @@ -298,7 +298,7 @@ nlm4svc_decode_unlockargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlm4svc_decode_shareargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp) +nlm4svc_decode_shareargs(struct svc_rqst *rqstp, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -319,7 +319,7 @@ nlm4svc_decode_shareargs(struct svc_rqst *rqstp, u32 *p, nlm_args *argp)  }  int -nlm4svc_encode_shareres(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp) +nlm4svc_encode_shareres(struct svc_rqst *rqstp, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm4_encode_cookie(p, &resp->cookie)))  		return 0; @@ -329,7 +329,7 @@ nlm4svc_encode_shareres(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp)  }  int -nlm4svc_encode_res(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp) +nlm4svc_encode_res(struct svc_rqst *rqstp, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm4_encode_cookie(p, &resp->cookie)))  		return 0; @@ -338,7 +338,7 @@ nlm4svc_encode_res(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp)  }  int -nlm4svc_decode_notify(struct svc_rqst *rqstp, u32 *p, struct nlm_args *argp) +nlm4svc_decode_notify(struct svc_rqst *rqstp, __be32 *p, struct nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -350,7 +350,7 @@ nlm4svc_decode_notify(struct svc_rqst *rqstp, u32 *p, struct nlm_args *argp)  }  int -nlm4svc_decode_reboot(struct svc_rqst *rqstp, u32 *p, struct nlm_reboot *argp) +nlm4svc_decode_reboot(struct svc_rqst *rqstp, __be32 *p, struct nlm_reboot *argp)  {  	if (!(p = xdr_decode_string_inplace(p, &argp->mon, &argp->len, SM_MAXSTRLEN)))  		return 0; @@ -363,7 +363,7 @@ nlm4svc_decode_reboot(struct svc_rqst *rqstp, u32 *p, struct nlm_reboot *argp)  }  int -nlm4svc_decode_res(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp) +nlm4svc_decode_res(struct svc_rqst *rqstp, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm4_decode_cookie(p, &resp->cookie)))  		return 0; @@ -372,13 +372,13 @@ nlm4svc_decode_res(struct svc_rqst *rqstp, u32 *p, struct nlm_res *resp)  }  int -nlm4svc_decode_void(struct svc_rqst *rqstp, u32 *p, void *dummy) +nlm4svc_decode_void(struct svc_rqst *rqstp, __be32 *p, void *dummy)  {  	return xdr_argsize_check(rqstp, p);  }  int -nlm4svc_encode_void(struct svc_rqst *rqstp, u32 *p, void *dummy) +nlm4svc_encode_void(struct svc_rqst *rqstp, __be32 *p, void *dummy)  {  	return xdr_ressize_check(rqstp, p);  } @@ -388,14 +388,14 @@ nlm4svc_encode_void(struct svc_rqst *rqstp, u32 *p, void *dummy)   */  #ifdef NLMCLNT_SUPPORT_SHARES  static int -nlm4clt_decode_void(struct rpc_rqst *req, u32 *p, void *ptr) +nlm4clt_decode_void(struct rpc_rqst *req, __be32 *p, void *ptr)  {  	return 0;  }  #endif  static int -nlm4clt_encode_testargs(struct rpc_rqst *req, u32 *p, nlm_args *argp) +nlm4clt_encode_testargs(struct rpc_rqst *req, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -409,7 +409,7 @@ nlm4clt_encode_testargs(struct rpc_rqst *req, u32 *p, nlm_args *argp)  }  static int -nlm4clt_decode_testres(struct rpc_rqst *req, u32 *p, struct nlm_res *resp) +nlm4clt_decode_testres(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm4_decode_cookie(p, &resp->cookie)))  		return -EIO; @@ -444,7 +444,7 @@ nlm4clt_decode_testres(struct rpc_rqst *req, u32 *p, struct nlm_res *resp)  static int -nlm4clt_encode_lockargs(struct rpc_rqst *req, u32 *p, nlm_args *argp) +nlm4clt_encode_lockargs(struct rpc_rqst *req, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -461,7 +461,7 @@ nlm4clt_encode_lockargs(struct rpc_rqst *req, u32 *p, nlm_args *argp)  }  static int -nlm4clt_encode_cancargs(struct rpc_rqst *req, u32 *p, nlm_args *argp) +nlm4clt_encode_cancargs(struct rpc_rqst *req, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -476,7 +476,7 @@ nlm4clt_encode_cancargs(struct rpc_rqst *req, u32 *p, nlm_args *argp)  }  static int -nlm4clt_encode_unlockargs(struct rpc_rqst *req, u32 *p, nlm_args *argp) +nlm4clt_encode_unlockargs(struct rpc_rqst *req, __be32 *p, nlm_args *argp)  {  	struct nlm_lock	*lock = &argp->lock; @@ -489,7 +489,7 @@ nlm4clt_encode_unlockargs(struct rpc_rqst *req, u32 *p, nlm_args *argp)  }  static int -nlm4clt_encode_res(struct rpc_rqst *req, u32 *p, struct nlm_res *resp) +nlm4clt_encode_res(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm4_encode_cookie(p, &resp->cookie)))  		return -EIO; @@ -499,7 +499,7 @@ nlm4clt_encode_res(struct rpc_rqst *req, u32 *p, struct nlm_res *resp)  }  static int -nlm4clt_encode_testres(struct rpc_rqst *req, u32 *p, struct nlm_res *resp) +nlm4clt_encode_testres(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm4_encode_testres(p, resp)))  		return -EIO; @@ -508,7 +508,7 @@ nlm4clt_encode_testres(struct rpc_rqst *req, u32 *p, struct nlm_res *resp)  }  static int -nlm4clt_decode_res(struct rpc_rqst *req, u32 *p, struct nlm_res *resp) +nlm4clt_decode_res(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp)  {  	if (!(p = nlm4_decode_cookie(p, &resp->cookie)))  		return -EIO; | 
