diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-17 16:15:55 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-17 16:15:55 -0500 |
commit | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (patch) | |
tree | a8f4d49d63b1ecc92f2fddceba0655b2472c5bd9 /include/linux/nfsd/export.h | |
parent | 406089d01562f1e2bf9f089fd7637009ebaad589 (diff) |
Patched in Tegra support.
Diffstat (limited to 'include/linux/nfsd/export.h')
-rw-r--r-- | include/linux/nfsd/export.h | 67 |
1 files changed, 59 insertions, 8 deletions
diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h index 24c139288db..8a31a20efe7 100644 --- a/include/linux/nfsd/export.h +++ b/include/linux/nfsd/export.h | |||
@@ -6,11 +6,58 @@ | |||
6 | * | 6 | * |
7 | * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de> | 7 | * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de> |
8 | */ | 8 | */ |
9 | |||
9 | #ifndef NFSD_EXPORT_H | 10 | #ifndef NFSD_EXPORT_H |
10 | #define NFSD_EXPORT_H | 11 | #define NFSD_EXPORT_H |
11 | 12 | ||
13 | # include <linux/types.h> | ||
14 | #ifdef __KERNEL__ | ||
12 | # include <linux/nfsd/nfsfh.h> | 15 | # include <linux/nfsd/nfsfh.h> |
13 | #include <uapi/linux/nfsd/export.h> | 16 | #endif |
17 | |||
18 | /* | ||
19 | * Important limits for the exports stuff. | ||
20 | */ | ||
21 | #define NFSCLNT_IDMAX 1024 | ||
22 | #define NFSCLNT_ADDRMAX 16 | ||
23 | #define NFSCLNT_KEYMAX 32 | ||
24 | |||
25 | /* | ||
26 | * Export flags. | ||
27 | */ | ||
28 | #define NFSEXP_READONLY 0x0001 | ||
29 | #define NFSEXP_INSECURE_PORT 0x0002 | ||
30 | #define NFSEXP_ROOTSQUASH 0x0004 | ||
31 | #define NFSEXP_ALLSQUASH 0x0008 | ||
32 | #define NFSEXP_ASYNC 0x0010 | ||
33 | #define NFSEXP_GATHERED_WRITES 0x0020 | ||
34 | /* 40 80 100 currently unused */ | ||
35 | #define NFSEXP_NOHIDE 0x0200 | ||
36 | #define NFSEXP_NOSUBTREECHECK 0x0400 | ||
37 | #define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */ | ||
38 | #define NFSEXP_MSNFS 0x1000 /* do silly things that MS clients expect; no longer supported */ | ||
39 | #define NFSEXP_FSID 0x2000 | ||
40 | #define NFSEXP_CROSSMOUNT 0x4000 | ||
41 | #define NFSEXP_NOACL 0x8000 /* reserved for possible ACL related use */ | ||
42 | /* | ||
43 | * The NFSEXP_V4ROOT flag causes the kernel to give access only to NFSv4 | ||
44 | * clients, and only to the single directory that is the root of the | ||
45 | * export; further lookup and readdir operations are treated as if every | ||
46 | * subdirectory was a mountpoint, and ignored if they are not themselves | ||
47 | * exported. This is used by nfsd and mountd to construct the NFSv4 | ||
48 | * pseudofilesystem, which provides access only to paths leading to each | ||
49 | * exported filesystem. | ||
50 | */ | ||
51 | #define NFSEXP_V4ROOT 0x10000 | ||
52 | /* All flags that we claim to support. (Note we don't support NOACL.) */ | ||
53 | #define NFSEXP_ALLFLAGS 0x17E3F | ||
54 | |||
55 | /* The flags that may vary depending on security flavor: */ | ||
56 | #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ | ||
57 | | NFSEXP_ALLSQUASH \ | ||
58 | | NFSEXP_INSECURE_PORT) | ||
59 | |||
60 | #ifdef __KERNEL__ | ||
14 | 61 | ||
15 | /* | 62 | /* |
16 | * FS Locations | 63 | * FS Locations |
@@ -49,6 +96,7 @@ struct svc_export { | |||
49 | struct auth_domain * ex_client; | 96 | struct auth_domain * ex_client; |
50 | int ex_flags; | 97 | int ex_flags; |
51 | struct path ex_path; | 98 | struct path ex_path; |
99 | char *ex_pathname; | ||
52 | uid_t ex_anon_uid; | 100 | uid_t ex_anon_uid; |
53 | gid_t ex_anon_gid; | 101 | gid_t ex_anon_gid; |
54 | int ex_fsid; | 102 | int ex_fsid; |
@@ -56,7 +104,6 @@ struct svc_export { | |||
56 | struct nfsd4_fs_locations ex_fslocs; | 104 | struct nfsd4_fs_locations ex_fslocs; |
57 | int ex_nflavors; | 105 | int ex_nflavors; |
58 | struct exp_flavor_info ex_flavors[MAX_SECINFO_LIST]; | 106 | struct exp_flavor_info ex_flavors[MAX_SECINFO_LIST]; |
59 | struct cache_detail *cd; | ||
60 | }; | 107 | }; |
61 | 108 | ||
62 | /* an "export key" (expkey) maps a filehandlefragement to an | 109 | /* an "export key" (expkey) maps a filehandlefragement to an |
@@ -83,22 +130,23 @@ __be32 check_nfsd_access(struct svc_export *exp, struct svc_rqst *rqstp); | |||
83 | /* | 130 | /* |
84 | * Function declarations | 131 | * Function declarations |
85 | */ | 132 | */ |
86 | int nfsd_export_init(struct net *); | 133 | int nfsd_export_init(void); |
87 | void nfsd_export_shutdown(struct net *); | 134 | void nfsd_export_shutdown(void); |
88 | void nfsd_export_flush(struct net *); | 135 | void nfsd_export_flush(void); |
89 | struct svc_export * rqst_exp_get_by_name(struct svc_rqst *, | 136 | struct svc_export * rqst_exp_get_by_name(struct svc_rqst *, |
90 | struct path *); | 137 | struct path *); |
91 | struct svc_export * rqst_exp_parent(struct svc_rqst *, | 138 | struct svc_export * rqst_exp_parent(struct svc_rqst *, |
92 | struct path *); | 139 | struct path *); |
93 | struct svc_export * rqst_find_fsidzero_export(struct svc_rqst *); | 140 | int exp_rootfh(struct auth_domain *, |
94 | int exp_rootfh(struct net *, struct auth_domain *, | ||
95 | char *path, struct knfsd_fh *, int maxsize); | 141 | char *path, struct knfsd_fh *, int maxsize); |
96 | __be32 exp_pseudoroot(struct svc_rqst *, struct svc_fh *); | 142 | __be32 exp_pseudoroot(struct svc_rqst *, struct svc_fh *); |
97 | __be32 nfserrno(int errno); | 143 | __be32 nfserrno(int errno); |
98 | 144 | ||
145 | extern struct cache_detail svc_export_cache; | ||
146 | |||
99 | static inline void exp_put(struct svc_export *exp) | 147 | static inline void exp_put(struct svc_export *exp) |
100 | { | 148 | { |
101 | cache_put(&exp->h, exp->cd); | 149 | cache_put(&exp->h, &svc_export_cache); |
102 | } | 150 | } |
103 | 151 | ||
104 | static inline void exp_get(struct svc_export *exp) | 152 | static inline void exp_get(struct svc_export *exp) |
@@ -107,4 +155,7 @@ static inline void exp_get(struct svc_export *exp) | |||
107 | } | 155 | } |
108 | struct svc_export * rqst_exp_find(struct svc_rqst *, int, u32 *); | 156 | struct svc_export * rqst_exp_find(struct svc_rqst *, int, u32 *); |
109 | 157 | ||
158 | #endif /* __KERNEL__ */ | ||
159 | |||
110 | #endif /* NFSD_EXPORT_H */ | 160 | #endif /* NFSD_EXPORT_H */ |
161 | |||