mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 08:26:29 +00:00 
			
		
		
		
	 4cfc7e6019
			
		
	
	
		4cfc7e6019
		
	
	
	
	
		
			
			When the call direction is a reply, copy the xid and call direction into the req->rq_private_buf.head[0].iov_base otherwise rpc_verify_header returns rpc_garbage. Signed-off-by: Rahul Iyer <iyer@netapp.com> Signed-off-by: Mike Sager <sager@netapp.com> Signed-off-by: Marc Eshel <eshel@almaden.ibm.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com> Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> [get rid of CONFIG_NFSD_V4_1] [sunrpc: refactoring of svc_tcp_recvfrom] [nfsd41: sunrpc: create common send routine for the fore and the back channels] [nfsd41: sunrpc: Use free_page() to free server backchannel pages] [nfsd41: sunrpc: Document server backchannel locking] [nfsd41: sunrpc: remove bc_connect_worker()] [nfsd41: sunrpc: Define xprt_server_backchannel()[ [nfsd41: sunrpc: remove bc_close and bc_init_auto_disconnect dummy functions] [nfsd41: sunrpc: eliminate unneeded switch statement in xs_setup_tcp()] [nfsd41: sunrpc: Don't auto close the server backchannel connection] [nfsd41: sunrpc: Remove unused functions] Signed-off-by: Alexandros Batsakis <batsakis@netapp.com> Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> [nfsd41: change bc_sock to bc_xprt] [nfsd41: sunrpc: move struct rpc_buffer def into a common header file] [nfsd41: sunrpc: use rpc_sleep in bc_send_request so not to block on mutex] [removed cosmetic changes] Signed-off-by: Benny Halevy <bhalevy@panasas.com> [sunrpc: add new xprt class for nfsv4.1 backchannel] [sunrpc: v2.1 change handling of auto_close and init_auto_disconnect operations for the nfsv4.1 backchannel] Signed-off-by: Alexandros Batsakis <batsakis@netapp.com> [reverted more cosmetic leftovers] [got rid of xprt_server_backchannel] [separated "nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel"] Signed-off-by: Benny Halevy <bhalevy@panasas.com> Cc: Trond Myklebust <trond.myklebust@netapp.com> [sunrpc: change idle timeout value for the backchannel] Signed-off-by: Alexandros Batsakis <batsakis@netapp.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> Acked-by: Trond Myklebust <trond.myklebust@netapp.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * linux/include/linux/sunrpc/svcsock.h
 | |
|  *
 | |
|  * RPC server socket I/O.
 | |
|  *
 | |
|  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
 | |
|  */
 | |
| 
 | |
| #ifndef SUNRPC_SVCSOCK_H
 | |
| #define SUNRPC_SVCSOCK_H
 | |
| 
 | |
| #include <linux/sunrpc/svc.h>
 | |
| #include <linux/sunrpc/svc_xprt.h>
 | |
| 
 | |
| /*
 | |
|  * RPC server socket.
 | |
|  */
 | |
| struct svc_sock {
 | |
| 	struct svc_xprt		sk_xprt;
 | |
| 	struct socket *		sk_sock;	/* berkeley socket layer */
 | |
| 	struct sock *		sk_sk;		/* INET layer */
 | |
| 
 | |
| 	/* We keep the old state_change and data_ready CB's here */
 | |
| 	void			(*sk_ostate)(struct sock *);
 | |
| 	void			(*sk_odata)(struct sock *, int bytes);
 | |
| 	void			(*sk_owspace)(struct sock *);
 | |
| 
 | |
| 	/* private TCP part */
 | |
| 	u32			sk_reclen;	/* length of record */
 | |
| 	u32			sk_tcplen;	/* current read length */
 | |
| 	struct rpc_xprt		*sk_bc_xprt;	/* NFSv4.1 backchannel xprt */
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * Function prototypes.
 | |
|  */
 | |
| void		svc_close_all(struct list_head *);
 | |
| int		svc_recv(struct svc_rqst *, long);
 | |
| int		svc_send(struct svc_rqst *);
 | |
| void		svc_drop(struct svc_rqst *);
 | |
| void		svc_sock_update_bufs(struct svc_serv *serv);
 | |
| int		svc_sock_names(struct svc_serv *serv, char *buf,
 | |
| 					const size_t buflen,
 | |
| 					const char *toclose);
 | |
| int		svc_addsock(struct svc_serv *serv, const int fd,
 | |
| 					char *name_return, const size_t len);
 | |
| void		svc_init_xprt_sock(void);
 | |
| void		svc_cleanup_xprt_sock(void);
 | |
| struct svc_xprt *svc_sock_create(struct svc_serv *serv, int prot);
 | |
| void		svc_sock_destroy(struct svc_xprt *);
 | |
| 
 | |
| /*
 | |
|  * svc_makesock socket characteristics
 | |
|  */
 | |
| #define SVC_SOCK_DEFAULTS	(0U)
 | |
| #define SVC_SOCK_ANONYMOUS	(1U << 0)	/* don't register with pmap */
 | |
| #define SVC_SOCK_TEMPORARY	(1U << 1)	/* flag socket as temporary */
 | |
| 
 | |
| #endif /* SUNRPC_SVCSOCK_H */
 |