Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Helper routines for the NFS client caches
0004  *
0005  * Copyright (c) 2009 Trond Myklebust <Trond.Myklebust@netapp.com>
0006  */
0007 
0008 #include <linux/completion.h>
0009 #include <linux/sunrpc/cache.h>
0010 #include <linux/atomic.h>
0011 
0012 /*
0013  * Deferred request handling
0014  */
0015 struct nfs_cache_defer_req {
0016     struct cache_req req;
0017     struct cache_deferred_req deferred_req;
0018     struct completion completion;
0019     refcount_t count;
0020 };
0021 
0022 extern int nfs_cache_upcall(struct cache_detail *cd, char *entry_name);
0023 extern struct nfs_cache_defer_req *nfs_cache_defer_req_alloc(void);
0024 extern void nfs_cache_defer_req_put(struct nfs_cache_defer_req *dreq);
0025 extern int nfs_cache_wait_for_upcall(struct nfs_cache_defer_req *dreq);
0026 
0027 extern int nfs_cache_register_net(struct net *net, struct cache_detail *cd);
0028 extern void nfs_cache_unregister_net(struct net *net, struct cache_detail *cd);
0029 extern int nfs_cache_register_sb(struct super_block *sb,
0030                  struct cache_detail *cd);
0031 extern void nfs_cache_unregister_sb(struct super_block *sb,
0032                     struct cache_detail *cd);