blob: 48fe262418ce53df28afb0942441e4dc59a85c6b [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef _LINUX_NFS_XDR_H
13#define _LINUX_NFS_XDR_H
Ben Cheng4b29af02012-03-07 16:14:53 -080014
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080015#include <linux/sunrpc/xprt.h>
16#include <linux/nfsacl.h>
Ben Cheng4b29af02012-03-07 16:14:53 -080017
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080018#define NFS_MAX_FILE_IO_SIZE (1048576U)
19#define NFS_DEF_FILE_IO_SIZE (4096U)
20#define NFS_MIN_FILE_IO_SIZE (1024U)
Ben Cheng4b29af02012-03-07 16:14:53 -080021
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080022struct nfs_fsid {
23 uint64_t major;
24 uint64_t minor;
25};
Ben Cheng4b29af02012-03-07 16:14:53 -080026
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080027#define NFS_ATTR_WCC 0x0001
28#define NFS_ATTR_FATTR 0x0002
29#define NFS_ATTR_FATTR_V3 0x0004
30#define NFS_ATTR_FATTR_V4 0x0008
31#define NFS_ATTR_FATTR_V4_REFERRAL 0x0010
Ben Cheng4b29af02012-03-07 16:14:53 -080032
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080033struct nfs_fsinfo {
34 struct nfs_fattr *fattr;
35 __u32 rtmax;
36 __u32 rtpref;
37 __u32 rtmult;
38 __u32 wtmax;
39 __u32 wtpref;
40 __u32 wtmult;
41 __u32 dtpref;
42 __u64 maxfilesize;
43 __u32 lease_time;
44};
Ben Cheng4b29af02012-03-07 16:14:53 -080045
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080046struct nfs_fsstat {
47 struct nfs_fattr *fattr;
48 __u64 tbytes;
49 __u64 fbytes;
50 __u64 abytes;
51 __u64 tfiles;
52 __u64 ffiles;
53 __u64 afiles;
54};
Ben Cheng4b29af02012-03-07 16:14:53 -080055
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080056struct nfs2_fsstat {
57 __u32 tsize;
58 __u32 bsize;
59 __u32 blocks;
60 __u32 bfree;
61 __u32 bavail;
62};
Ben Cheng4b29af02012-03-07 16:14:53 -080063
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080064struct nfs_pathconf {
65 struct nfs_fattr *fattr;
66 __u32 max_link;
67 __u32 max_namelen;
68};
Ben Cheng4b29af02012-03-07 16:14:53 -080069
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080070struct nfs4_change_info {
71 u32 atomic;
72 u64 before;
73 u64 after;
74};
Ben Cheng4b29af02012-03-07 16:14:53 -080075
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080076struct nfs_seqid;
Ben Cheng4b29af02012-03-07 16:14:53 -080077
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080078struct nfs_openargs {
79 const struct nfs_fh * fh;
80 struct nfs_seqid * seqid;
81 int open_flags;
82 __u64 clientid;
83 __u32 id;
84 union {
85 struct iattr * attrs;
86 nfs4_verifier verifier;
87 nfs4_stateid delegation;
88 int delegation_type;
89 } u;
90 const struct qstr * name;
91 const struct nfs_server *server;
92 const u32 * bitmask;
93 __u32 claim;
94};
Ben Cheng4b29af02012-03-07 16:14:53 -080095
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080096struct nfs_openres {
97 nfs4_stateid stateid;
98 struct nfs_fh fh;
99 struct nfs4_change_info cinfo;
100 __u32 rflags;
101 struct nfs_fattr * f_attr;
102 struct nfs_fattr * dir_attr;
103 const struct nfs_server *server;
104 int delegation_type;
105 nfs4_stateid delegation;
106 __u32 do_recall;
107 __u64 maxsize;
108};
Ben Cheng4b29af02012-03-07 16:14:53 -0800109
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800110struct nfs_open_confirmargs {
111 const struct nfs_fh * fh;
112 nfs4_stateid * stateid;
113 struct nfs_seqid * seqid;
114};
Ben Cheng4b29af02012-03-07 16:14:53 -0800115
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800116struct nfs_open_confirmres {
117 nfs4_stateid stateid;
118};
Ben Cheng4b29af02012-03-07 16:14:53 -0800119
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800120struct nfs_closeargs {
121 struct nfs_fh * fh;
122 nfs4_stateid * stateid;
123 struct nfs_seqid * seqid;
124 int open_flags;
125 const u32 * bitmask;
126};
Ben Cheng4b29af02012-03-07 16:14:53 -0800127
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800128struct nfs_closeres {
129 nfs4_stateid stateid;
130 struct nfs_fattr * fattr;
131 const struct nfs_server *server;
132};
Ben Cheng4b29af02012-03-07 16:14:53 -0800133
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800134struct nfs_lowner {
135 __u64 clientid;
136 u32 id;
137};
Ben Cheng4b29af02012-03-07 16:14:53 -0800138
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800139struct nfs_lock_args {
140 struct nfs_fh * fh;
141 struct file_lock * fl;
142 struct nfs_seqid * lock_seqid;
143 nfs4_stateid * lock_stateid;
144 struct nfs_seqid * open_seqid;
145 nfs4_stateid * open_stateid;
146 struct nfs_lowner lock_owner;
147 unsigned char block : 1;
148 unsigned char reclaim : 1;
149 unsigned char new_lock_owner : 1;
150};
Ben Cheng4b29af02012-03-07 16:14:53 -0800151
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800152struct nfs_lock_res {
153 nfs4_stateid stateid;
154};
Ben Cheng4b29af02012-03-07 16:14:53 -0800155
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800156struct nfs_locku_args {
157 struct nfs_fh * fh;
158 struct file_lock * fl;
159 struct nfs_seqid * seqid;
160 nfs4_stateid * stateid;
161};
Ben Cheng4b29af02012-03-07 16:14:53 -0800162
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800163struct nfs_locku_res {
164 nfs4_stateid stateid;
165};
Ben Cheng4b29af02012-03-07 16:14:53 -0800166
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800167struct nfs_lockt_args {
168 struct nfs_fh * fh;
169 struct file_lock * fl;
170 struct nfs_lowner lock_owner;
171};
Ben Cheng4b29af02012-03-07 16:14:53 -0800172
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800173struct nfs_lockt_res {
174 struct file_lock * denied;
175};
Ben Cheng4b29af02012-03-07 16:14:53 -0800176
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800177struct nfs4_delegreturnargs {
178 const struct nfs_fh *fhandle;
179 const nfs4_stateid *stateid;
180 const u32 * bitmask;
181};
Ben Cheng4b29af02012-03-07 16:14:53 -0800182
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800183struct nfs4_delegreturnres {
184 struct nfs_fattr * fattr;
185 const struct nfs_server *server;
186};
Ben Cheng4b29af02012-03-07 16:14:53 -0800187
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800188struct nfs_readargs {
189 struct nfs_fh * fh;
190 struct nfs_open_context *context;
191 __u64 offset;
192 __u32 count;
193 unsigned int pgbase;
194 struct page ** pages;
195};
Ben Cheng4b29af02012-03-07 16:14:53 -0800196
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800197struct nfs_readres {
198 struct nfs_fattr * fattr;
199 __u32 count;
200 int eof;
201};
Ben Cheng4b29af02012-03-07 16:14:53 -0800202
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800203struct nfs_writeargs {
204 struct nfs_fh * fh;
205 struct nfs_open_context *context;
206 __u64 offset;
207 __u32 count;
208 enum nfs3_stable_how stable;
209 unsigned int pgbase;
210 struct page ** pages;
211 const u32 * bitmask;
212};
Ben Cheng4b29af02012-03-07 16:14:53 -0800213
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800214struct nfs_writeverf {
215 enum nfs3_stable_how committed;
216 __u32 verifier[2];
217};
Ben Cheng4b29af02012-03-07 16:14:53 -0800218
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800219struct nfs_writeres {
220 struct nfs_fattr * fattr;
221 struct nfs_writeverf * verf;
222 __u32 count;
223 const struct nfs_server *server;
224};
Ben Cheng4b29af02012-03-07 16:14:53 -0800225
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800226struct nfs_entry {
227 __u64 ino;
228 __u64 cookie,
229 prev_cookie;
230 const char * name;
231 unsigned int len;
232 int eof;
233 struct nfs_fh * fh;
234 struct nfs_fattr * fattr;
235};
Ben Cheng4b29af02012-03-07 16:14:53 -0800236
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800237struct nfs_sattrargs {
238 struct nfs_fh * fh;
239 struct iattr * sattr;
240};
Ben Cheng4b29af02012-03-07 16:14:53 -0800241
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800242struct nfs_diropargs {
243 struct nfs_fh * fh;
244 const char * name;
245 unsigned int len;
246};
Ben Cheng4b29af02012-03-07 16:14:53 -0800247
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800248struct nfs_createargs {
249 struct nfs_fh * fh;
250 const char * name;
251 unsigned int len;
252 struct iattr * sattr;
253};
Ben Cheng4b29af02012-03-07 16:14:53 -0800254
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800255struct nfs_renameargs {
256 struct nfs_fh * fromfh;
257 const char * fromname;
258 unsigned int fromlen;
259 struct nfs_fh * tofh;
260 const char * toname;
261 unsigned int tolen;
262};
Ben Cheng4b29af02012-03-07 16:14:53 -0800263
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800264struct nfs_setattrargs {
265 struct nfs_fh * fh;
266 nfs4_stateid stateid;
267 struct iattr * iap;
268 const struct nfs_server * server;
269 const u32 * bitmask;
270};
Ben Cheng4b29af02012-03-07 16:14:53 -0800271
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800272struct nfs_setaclargs {
273 struct nfs_fh * fh;
274 size_t acl_len;
275 unsigned int acl_pgbase;
276 struct page ** acl_pages;
277};
Ben Cheng4b29af02012-03-07 16:14:53 -0800278
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800279struct nfs_getaclargs {
280 struct nfs_fh * fh;
281 size_t acl_len;
282 unsigned int acl_pgbase;
283 struct page ** acl_pages;
284};
Ben Cheng4b29af02012-03-07 16:14:53 -0800285
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800286struct nfs_setattrres {
287 struct nfs_fattr * fattr;
288 const struct nfs_server * server;
289};
Ben Cheng4b29af02012-03-07 16:14:53 -0800290
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800291struct nfs_linkargs {
292 struct nfs_fh * fromfh;
293 struct nfs_fh * tofh;
294 const char * toname;
295 unsigned int tolen;
296};
Ben Cheng4b29af02012-03-07 16:14:53 -0800297
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800298struct nfs_symlinkargs {
299 struct nfs_fh * fromfh;
300 const char * fromname;
301 unsigned int fromlen;
302 const char * topath;
303 unsigned int tolen;
304 struct iattr * sattr;
305};
Ben Cheng4b29af02012-03-07 16:14:53 -0800306
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800307struct nfs_readdirargs {
308 struct nfs_fh * fh;
309 __u32 cookie;
310 unsigned int count;
311 struct page ** pages;
312};
Ben Cheng4b29af02012-03-07 16:14:53 -0800313
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800314struct nfs3_getaclargs {
315 struct nfs_fh * fh;
316 int mask;
317 struct page ** pages;
318};
Ben Cheng4b29af02012-03-07 16:14:53 -0800319
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800320struct nfs3_setaclargs {
321 struct inode * inode;
322 int mask;
323 struct posix_acl * acl_access;
324 struct posix_acl * acl_default;
325 struct page ** pages;
326};
Ben Cheng4b29af02012-03-07 16:14:53 -0800327
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800328struct nfs_diropok {
329 struct nfs_fh * fh;
330 struct nfs_fattr * fattr;
331};
Ben Cheng4b29af02012-03-07 16:14:53 -0800332
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800333struct nfs_readlinkargs {
334 struct nfs_fh * fh;
335 unsigned int pgbase;
336 unsigned int pglen;
337 struct page ** pages;
338};
Ben Cheng4b29af02012-03-07 16:14:53 -0800339
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800340struct nfs3_sattrargs {
341 struct nfs_fh * fh;
342 struct iattr * sattr;
343 unsigned int guard;
344 struct timespec guardtime;
345};
Ben Cheng4b29af02012-03-07 16:14:53 -0800346
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800347struct nfs3_diropargs {
348 struct nfs_fh * fh;
349 const char * name;
350 unsigned int len;
351};
Ben Cheng4b29af02012-03-07 16:14:53 -0800352
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800353struct nfs3_accessargs {
354 struct nfs_fh * fh;
355 __u32 access;
356};
Ben Cheng4b29af02012-03-07 16:14:53 -0800357
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800358struct nfs3_createargs {
359 struct nfs_fh * fh;
360 const char * name;
361 unsigned int len;
362 struct iattr * sattr;
363 enum nfs3_createmode createmode;
364 __u32 verifier[2];
365};
Ben Cheng4b29af02012-03-07 16:14:53 -0800366
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800367struct nfs3_mkdirargs {
368 struct nfs_fh * fh;
369 const char * name;
370 unsigned int len;
371 struct iattr * sattr;
372};
Ben Cheng4b29af02012-03-07 16:14:53 -0800373
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800374struct nfs3_symlinkargs {
375 struct nfs_fh * fromfh;
376 const char * fromname;
377 unsigned int fromlen;
378 const char * topath;
379 unsigned int tolen;
380 struct iattr * sattr;
381};
Ben Cheng4b29af02012-03-07 16:14:53 -0800382
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800383struct nfs3_mknodargs {
384 struct nfs_fh * fh;
385 const char * name;
386 unsigned int len;
387 enum nfs3_ftype type;
388 struct iattr * sattr;
389 dev_t rdev;
390};
Ben Cheng4b29af02012-03-07 16:14:53 -0800391
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800392struct nfs3_renameargs {
393 struct nfs_fh * fromfh;
394 const char * fromname;
395 unsigned int fromlen;
396 struct nfs_fh * tofh;
397 const char * toname;
398 unsigned int tolen;
399};
Ben Cheng4b29af02012-03-07 16:14:53 -0800400
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800401struct nfs3_linkargs {
402 struct nfs_fh * fromfh;
403 struct nfs_fh * tofh;
404 const char * toname;
405 unsigned int tolen;
406};
Ben Cheng4b29af02012-03-07 16:14:53 -0800407
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800408struct nfs3_readdirargs {
409 struct nfs_fh * fh;
410 __u64 cookie;
411 __u32 verf[2];
412 int plus;
413 unsigned int count;
414 struct page ** pages;
415};
Ben Cheng4b29af02012-03-07 16:14:53 -0800416
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800417struct nfs3_diropres {
418 struct nfs_fattr * dir_attr;
419 struct nfs_fh * fh;
420 struct nfs_fattr * fattr;
421};
Ben Cheng4b29af02012-03-07 16:14:53 -0800422
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800423struct nfs3_accessres {
424 struct nfs_fattr * fattr;
425 __u32 access;
426};
Ben Cheng4b29af02012-03-07 16:14:53 -0800427
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800428struct nfs3_readlinkargs {
429 struct nfs_fh * fh;
430 unsigned int pgbase;
431 unsigned int pglen;
432 struct page ** pages;
433};
Ben Cheng4b29af02012-03-07 16:14:53 -0800434
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800435struct nfs3_renameres {
436 struct nfs_fattr * fromattr;
437 struct nfs_fattr * toattr;
438};
Ben Cheng4b29af02012-03-07 16:14:53 -0800439
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800440struct nfs3_linkres {
441 struct nfs_fattr * dir_attr;
442 struct nfs_fattr * fattr;
443};
Ben Cheng4b29af02012-03-07 16:14:53 -0800444
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800445struct nfs3_readdirres {
446 struct nfs_fattr * dir_attr;
447 __u32 * verf;
448 int plus;
449};
Ben Cheng4b29af02012-03-07 16:14:53 -0800450
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800451struct nfs3_getaclres {
452 struct nfs_fattr * fattr;
453 int mask;
454 unsigned int acl_access_count;
455 unsigned int acl_default_count;
456 struct posix_acl * acl_access;
457 struct posix_acl * acl_default;
458};
Ben Cheng4b29af02012-03-07 16:14:53 -0800459
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800460struct nfs_page;
Ben Cheng4b29af02012-03-07 16:14:53 -0800461
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800462#define NFS_PAGEVEC_SIZE (8U)
Ben Cheng4b29af02012-03-07 16:14:53 -0800463
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800464struct nfs_read_data {
465 int flags;
466 struct rpc_task task;
467 struct inode *inode;
468 struct rpc_cred *cred;
469 struct nfs_fattr fattr;
470 struct list_head pages;
471 struct nfs_page *req;
472 struct page **pagevec;
473 unsigned int npages;
474 struct nfs_readargs args;
475 struct nfs_readres res;
476 struct page *page_array[NFS_PAGEVEC_SIZE];
477};
Ben Cheng4b29af02012-03-07 16:14:53 -0800478
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800479struct nfs_write_data {
480 int flags;
481 struct rpc_task task;
482 struct inode *inode;
483 struct rpc_cred *cred;
484 struct nfs_fattr fattr;
485 struct nfs_writeverf verf;
486 struct list_head pages;
487 struct nfs_page *req;
488 struct page **pagevec;
489 unsigned int npages;
490 struct nfs_writeargs args;
491 struct nfs_writeres res;
492 struct page *page_array[NFS_PAGEVEC_SIZE];
493};
Ben Cheng4b29af02012-03-07 16:14:53 -0800494
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800495struct nfs_access_entry;
Ben Cheng4b29af02012-03-07 16:14:53 -0800496
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800497struct nfs_rpc_ops {
498 int version;
499 struct dentry_operations *dentry_ops;
500 struct inode_operations *dir_inode_ops;
501 struct inode_operations *file_inode_ops;
Ben Cheng4b29af02012-03-07 16:14:53 -0800502
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800503 int (*getroot) (struct nfs_server *, struct nfs_fh *,
504 struct nfs_fsinfo *);
505 int (*getattr) (struct nfs_server *, struct nfs_fh *,
506 struct nfs_fattr *);
507 int (*setattr) (struct dentry *, struct nfs_fattr *,
508 struct iattr *);
509 int (*lookup) (struct inode *, struct qstr *,
510 struct nfs_fh *, struct nfs_fattr *);
511 int (*access) (struct inode *, struct nfs_access_entry *);
512 int (*readlink)(struct inode *, struct page *, unsigned int,
513 unsigned int);
514 int (*read) (struct nfs_read_data *);
515 int (*write) (struct nfs_write_data *);
516 int (*commit) (struct nfs_write_data *);
517 int (*create) (struct inode *, struct dentry *,
518 struct iattr *, int, struct nameidata *);
519 int (*remove) (struct inode *, struct qstr *);
520 int (*unlink_setup) (struct rpc_message *,
521 struct dentry *, struct qstr *);
522 int (*unlink_done) (struct dentry *, struct rpc_task *);
523 int (*rename) (struct inode *, struct qstr *,
524 struct inode *, struct qstr *);
525 int (*link) (struct inode *, struct inode *, struct qstr *);
526 int (*symlink) (struct inode *, struct qstr *, struct qstr *,
527 struct iattr *, struct nfs_fh *,
528 struct nfs_fattr *);
529 int (*mkdir) (struct inode *, struct dentry *, struct iattr *);
530 int (*rmdir) (struct inode *, struct qstr *);
531 int (*readdir) (struct dentry *, struct rpc_cred *,
532 u64, struct page *, unsigned int, int);
533 int (*mknod) (struct inode *, struct dentry *, struct iattr *,
534 dev_t);
535 int (*statfs) (struct nfs_server *, struct nfs_fh *,
536 struct nfs_fsstat *);
537 int (*fsinfo) (struct nfs_server *, struct nfs_fh *,
538 struct nfs_fsinfo *);
539 int (*pathconf) (struct nfs_server *, struct nfs_fh *,
540 struct nfs_pathconf *);
541 u32 * (*decode_dirent)(u32 *, struct nfs_entry *, int plus);
542 void (*read_setup) (struct nfs_read_data *);
543 int (*read_done) (struct rpc_task *, struct nfs_read_data *);
544 void (*write_setup) (struct nfs_write_data *, int how);
545 int (*write_done) (struct rpc_task *, struct nfs_write_data *);
546 void (*commit_setup) (struct nfs_write_data *, int how);
547 int (*commit_done) (struct rpc_task *, struct nfs_write_data *);
548 int (*file_open) (struct inode *, struct file *);
549 int (*file_release) (struct inode *, struct file *);
550 int (*lock)(struct file *, int, struct file_lock *);
551 void (*clear_acl_cache)(struct inode *);
552};
Ben Cheng4b29af02012-03-07 16:14:53 -0800553
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800554#define NFS_CALL(op, inode, args) NFS_PROTO(inode)->op args
Ben Cheng4b29af02012-03-07 16:14:53 -0800555
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800556#endif