Import 2.3.6
[davej-history.git] / include / linux / nfsiod.h
blob206441c56ca19cff57ce25509846a5979f77f3b7
1 /*
2 * linux/include/linux/nfsiod.h
4 * Declarations for asynchronous NFS RPC calls.
6 */
8 #ifndef _LINUX_NFSIOD_H
9 #define _LINUX_NFSIOD_H
11 #include <linux/rpcsock.h>
12 #include <linux/nfs_fs.h>
14 #ifdef __KERNEL__
17 * This is the callback handler for nfsiod requests.
18 * Note that the callback procedure must NOT sleep.
20 struct nfsiod_req;
21 typedef int (*nfsiod_callback_t)(int result, struct nfsiod_req *);
24 * This is the nfsiod request struct.
26 struct 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;
36 /* user creds */
37 uid_t rq_fsuid;
38 gid_t rq_fsgid;
39 int rq_groups[NGROUPS];
41 /* retry handling */
42 int rq_retries;
45 struct nfsiod_req * nfsiod_reserve(struct nfs_server *);
46 void nfsiod_release(struct nfsiod_req *);
47 void nfsiod_enqueue(struct nfsiod_req *);
48 int nfsiod(void);
51 #endif /* __KERNEL__ */
52 #endif /* _LINUX_NFSIOD_H */