1/* 2 * linux/include/linux/nfsiod.h 3 * 4 * Declarations for asynchronous NFS RPC calls. 5 * 6 */ 7 8#ifndef _LINUX_NFSIOD_H 9#define _LINUX_NFSIOD_H 10 11#include <linux/rpcsock.h> 12#include <linux/nfs_fs.h> 13 14#ifdef __KERNEL__ 15 16/* 17 * This is the callback handler for nfsiod requests. 18 * Note that the callback procedure must NOT sleep. 19 */ 20struct nfsiod_req; 21typedef int (*nfsiod_callback_t)(int result, struct nfsiod_req *); 22 23/* 24 * This is the nfsiod request struct. 25 */ 26struct nfsiod_req { 27 struct nfsiod_req * rq_next; 28 struct nfsiod_req * rq_prev; 29 wait_queue_head_t rq_wait; 30 struct rpc_ioreq rq_rpcreq; 31 nfsiod_callback_t rq_callback; 32 struct nfs_server * rq_server; 33 struct inode * rq_inode; 34 struct page * rq_page; 35 36 /* user creds */ 37 uid_t rq_fsuid; 38 gid_t rq_fsgid; 39 int rq_groups[NGROUPS]; 40 41 /* retry handling */ 42 int rq_retries; 43}; 44 45struct nfsiod_req * nfsiod_reserve(struct nfs_server *); 46void nfsiod_release(struct nfsiod_req *); 47void nfsiod_enqueue(struct nfsiod_req *); 48int nfsiod(void); 49 50 51#endif /* __KERNEL__ */ 52#endif /* _LINUX_NFSIOD_H */ 53