mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 14:06:03 +00:00 
			
		
		
		
	 0cb2659b81
			
		
	
	
		0cb2659b81
		
	
	
	
	
		
			
			If the admin has specified the "noresvport" option for an NFS mount point, the kernel's NFS client uses an unprivileged source port for the main NFS transport. The kernel's lockd client should use an unprivileged port in this case as well. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * linux/include/linux/lockd/bind.h
 | |
|  *
 | |
|  * This is the part of lockd visible to nfsd and the nfs client.
 | |
|  *
 | |
|  * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
 | |
|  */
 | |
| 
 | |
| #ifndef LINUX_LOCKD_BIND_H
 | |
| #define LINUX_LOCKD_BIND_H
 | |
| 
 | |
| #include <linux/lockd/nlm.h>
 | |
| /* need xdr-encoded error codes too, so... */
 | |
| #include <linux/lockd/xdr.h>
 | |
| #ifdef CONFIG_LOCKD_V4
 | |
| #include <linux/lockd/xdr4.h>
 | |
| #endif
 | |
| 
 | |
| /* Dummy declarations */
 | |
| struct svc_rqst;
 | |
| 
 | |
| /*
 | |
|  * This is the set of functions for lockd->nfsd communication
 | |
|  */
 | |
| struct nlmsvc_binding {
 | |
| 	__be32			(*fopen)(struct svc_rqst *,
 | |
| 						struct nfs_fh *,
 | |
| 						struct file **);
 | |
| 	void			(*fclose)(struct file *);
 | |
| };
 | |
| 
 | |
| extern struct nlmsvc_binding *	nlmsvc_ops;
 | |
| 
 | |
| /*
 | |
|  * Similar to nfs_client_initdata, but without the NFS-specific
 | |
|  * rpc_ops field.
 | |
|  */
 | |
| struct nlmclnt_initdata {
 | |
| 	const char		*hostname;
 | |
| 	const struct sockaddr	*address;
 | |
| 	size_t			addrlen;
 | |
| 	unsigned short		protocol;
 | |
| 	u32			nfs_version;
 | |
| 	int			noresvport;
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * Functions exported by the lockd module
 | |
|  */
 | |
| 
 | |
| extern struct nlm_host *nlmclnt_init(const struct nlmclnt_initdata *nlm_init);
 | |
| extern void	nlmclnt_done(struct nlm_host *host);
 | |
| 
 | |
| extern int	nlmclnt_proc(struct nlm_host *host, int cmd,
 | |
| 					struct file_lock *fl);
 | |
| extern int	lockd_up(void);
 | |
| extern void	lockd_down(void);
 | |
| 
 | |
| #endif /* LINUX_LOCKD_BIND_H */
 |