 e571cbf1a4
			
		
	
	
	e571cbf1a4
	
	
	
		
			
			The NFSv4 and NFSv4.1 protocols both allow for the redirection of a client from one server to another in order to support filesystem migration and replication. For full protocol support, we need to add the ability to convert a DNS host name into an IP address that we can feed to the RPC client. We'll reuse the sunrpc cache, now that it has been converted to work with rpc_pipefs. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			790 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			790 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Helper routines for the NFS client caches
 | |
|  *
 | |
|  * Copyright (c) 2009 Trond Myklebust <Trond.Myklebust@netapp.com>
 | |
|  */
 | |
| 
 | |
| #include <linux/completion.h>
 | |
| #include <linux/sunrpc/cache.h>
 | |
| #include <asm/atomic.h>
 | |
| 
 | |
| /*
 | |
|  * Deferred request handling
 | |
|  */
 | |
| struct nfs_cache_defer_req {
 | |
| 	struct cache_req req;
 | |
| 	struct cache_deferred_req deferred_req;
 | |
| 	struct completion completion;
 | |
| 	atomic_t count;
 | |
| };
 | |
| 
 | |
| extern int nfs_cache_upcall(struct cache_detail *cd, char *entry_name);
 | |
| extern struct nfs_cache_defer_req *nfs_cache_defer_req_alloc(void);
 | |
| extern void nfs_cache_defer_req_put(struct nfs_cache_defer_req *dreq);
 | |
| extern int nfs_cache_wait_for_upcall(struct nfs_cache_defer_req *dreq);
 | |
| 
 | |
| extern int nfs_cache_register(struct cache_detail *cd);
 | |
| extern void nfs_cache_unregister(struct cache_detail *cd);
 |