Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * include/linux/nfsd/nfsfh.h | |
3 | * | |
4 | * This file describes the layout of the file handles as passed | |
5 | * over the wire. | |
6 | * | |
7 | * Earlier versions of knfsd used to sign file handles using keyed MD5 | |
8 | * or SHA. I've removed this code, because it doesn't give you more | |
9 | * security than blocking external access to port 2049 on your firewall. | |
10 | * | |
11 | * Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de> | |
12 | */ | |
1da177e4 LT |
13 | #ifndef _LINUX_NFSD_FH_H |
14 | #define _LINUX_NFSD_FH_H | |
15 | ||
72579ac9 | 16 | # include <linux/sunrpc/svc.h> |
616d1ca5 | 17 | #include <uapi/linux/nfsd/nfsfh.h> |
1da177e4 LT |
18 | |
19 | static inline __u32 ino_t_to_u32(ino_t ino) | |
20 | { | |
21 | return (__u32) ino; | |
22 | } | |
23 | ||
24 | static inline ino_t u32_to_ino_t(__u32 uino) | |
25 | { | |
26 | return (ino_t) uino; | |
27 | } | |
28 | ||
29 | /* | |
30 | * This is the internal representation of an NFS handle used in knfsd. | |
31 | * pre_mtime/post_version will be used to support wcc_attr's in NFSv3. | |
32 | */ | |
33 | typedef struct svc_fh { | |
34 | struct knfsd_fh fh_handle; /* FH data */ | |
35 | struct dentry * fh_dentry; /* validated dentry */ | |
36 | struct svc_export * fh_export; /* export pointer */ | |
37 | int fh_maxsize; /* max size for fh_handle */ | |
38 | ||
39 | unsigned char fh_locked; /* inode locked by us */ | |
4a55c101 | 40 | unsigned char fh_want_write; /* remount protection taken */ |
1da177e4 LT |
41 | |
42 | #ifdef CONFIG_NFSD_V3 | |
43 | unsigned char fh_post_saved; /* post-op attrs saved */ | |
44 | unsigned char fh_pre_saved; /* pre-op attrs saved */ | |
45 | ||
46 | /* Pre-op attributes saved during fh_lock */ | |
47 | __u64 fh_pre_size; /* size before operation */ | |
48 | struct timespec fh_pre_mtime; /* mtime before oper */ | |
49 | struct timespec fh_pre_ctime; /* ctime before oper */ | |
c654b8a9 BF |
50 | /* |
51 | * pre-op nfsv4 change attr: note must check IS_I_VERSION(inode) | |
52 | * to find out if it is valid. | |
53 | */ | |
54 | u64 fh_pre_change; | |
1da177e4 LT |
55 | |
56 | /* Post-op attributes saved in fh_unlock */ | |
40ee5dc6 | 57 | struct kstat fh_post_attr; /* full attrs after operation */ |
c654b8a9 | 58 | u64 fh_post_change; /* nfsv4 change; see above */ |
1da177e4 LT |
59 | #endif /* CONFIG_NFSD_V3 */ |
60 | ||
61 | } svc_fh; | |
62 | ||
1da177e4 | 63 | #endif /* _LINUX_NFSD_FH_H */ |