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