diff options
author | Christoph Hellwig <hch@lst.de> | 2014-05-06 13:37:14 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2014-05-06 17:54:54 -0400 |
commit | d430e8d530e900c923bf77718d72478b1c280592 (patch) | |
tree | a8907dc9e4fd7d8e7cec2f8ba3498752a1140a91 /fs | |
parent | 9c69de4c94fcb11db919160d5fa0b48f13d1757a (diff) |
nfsd: move <linux/nfsd/export.h> to fs/nfsd
There are no legitimate users outside of fs/nfsd, so move it there.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/lockd/svcsubs.c | 1 | ||||
-rw-r--r-- | fs/nfsd/export.h | 109 | ||||
-rw-r--r-- | fs/nfsd/nfsd.h | 3 |
3 files changed, 111 insertions, 2 deletions
diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c index 7ec6b1074d8c..b6f3b84b6e99 100644 --- a/fs/lockd/svcsubs.c +++ b/fs/lockd/svcsubs.c | |||
@@ -14,7 +14,6 @@ | |||
14 | #include <linux/mutex.h> | 14 | #include <linux/mutex.h> |
15 | #include <linux/sunrpc/svc.h> | 15 | #include <linux/sunrpc/svc.h> |
16 | #include <linux/sunrpc/addr.h> | 16 | #include <linux/sunrpc/addr.h> |
17 | #include <linux/nfsd/export.h> | ||
18 | #include <linux/lockd/lockd.h> | 17 | #include <linux/lockd/lockd.h> |
19 | #include <linux/lockd/share.h> | 18 | #include <linux/lockd/share.h> |
20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
diff --git a/fs/nfsd/export.h b/fs/nfsd/export.h new file mode 100644 index 000000000000..d7939a62a0ae --- /dev/null +++ b/fs/nfsd/export.h | |||
@@ -0,0 +1,109 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de> | ||
3 | */ | ||
4 | #ifndef NFSD_EXPORT_H | ||
5 | #define NFSD_EXPORT_H | ||
6 | |||
7 | #include <linux/sunrpc/cache.h> | ||
8 | #include <uapi/linux/nfsd/export.h> | ||
9 | |||
10 | struct knfsd_fh; | ||
11 | struct svc_fh; | ||
12 | struct svc_rqst; | ||
13 | |||
14 | /* | ||
15 | * FS Locations | ||
16 | */ | ||
17 | |||
18 | #define MAX_FS_LOCATIONS 128 | ||
19 | |||
20 | struct nfsd4_fs_location { | ||
21 | char *hosts; /* colon separated list of hosts */ | ||
22 | char *path; /* slash separated list of path components */ | ||
23 | }; | ||
24 | |||
25 | struct nfsd4_fs_locations { | ||
26 | uint32_t locations_count; | ||
27 | struct nfsd4_fs_location *locations; | ||
28 | /* If we're not actually serving this data ourselves (only providing a | ||
29 | * list of replicas that do serve it) then we set "migrated": */ | ||
30 | int migrated; | ||
31 | }; | ||
32 | |||
33 | /* | ||
34 | * We keep an array of pseudoflavors with the export, in order from most | ||
35 | * to least preferred. For the foreseeable future, we don't expect more | ||
36 | * than the eight pseudoflavors null, unix, krb5, krb5i, krb5p, skpm3, | ||
37 | * spkm3i, and spkm3p (and using all 8 at once should be rare). | ||
38 | */ | ||
39 | #define MAX_SECINFO_LIST 8 | ||
40 | |||
41 | struct exp_flavor_info { | ||
42 | u32 pseudoflavor; | ||
43 | u32 flags; | ||
44 | }; | ||
45 | |||
46 | struct svc_export { | ||
47 | struct cache_head h; | ||
48 | struct auth_domain * ex_client; | ||
49 | int ex_flags; | ||
50 | struct path ex_path; | ||
51 | kuid_t ex_anon_uid; | ||
52 | kgid_t ex_anon_gid; | ||
53 | int ex_fsid; | ||
54 | unsigned char * ex_uuid; /* 16 byte fsid */ | ||
55 | struct nfsd4_fs_locations ex_fslocs; | ||
56 | int ex_nflavors; | ||
57 | struct exp_flavor_info ex_flavors[MAX_SECINFO_LIST]; | ||
58 | struct cache_detail *cd; | ||
59 | }; | ||
60 | |||
61 | /* an "export key" (expkey) maps a filehandlefragement to an | ||
62 | * svc_export for a given client. There can be several per export, | ||
63 | * for the different fsid types. | ||
64 | */ | ||
65 | struct svc_expkey { | ||
66 | struct cache_head h; | ||
67 | |||
68 | struct auth_domain * ek_client; | ||
69 | int ek_fsidtype; | ||
70 | u32 ek_fsid[6]; | ||
71 | |||
72 | struct path ek_path; | ||
73 | }; | ||
74 | |||
75 | #define EX_ISSYNC(exp) (!((exp)->ex_flags & NFSEXP_ASYNC)) | ||
76 | #define EX_NOHIDE(exp) ((exp)->ex_flags & NFSEXP_NOHIDE) | ||
77 | #define EX_WGATHER(exp) ((exp)->ex_flags & NFSEXP_GATHERED_WRITES) | ||
78 | |||
79 | int nfsexp_flags(struct svc_rqst *rqstp, struct svc_export *exp); | ||
80 | __be32 check_nfsd_access(struct svc_export *exp, struct svc_rqst *rqstp); | ||
81 | |||
82 | /* | ||
83 | * Function declarations | ||
84 | */ | ||
85 | int nfsd_export_init(struct net *); | ||
86 | void nfsd_export_shutdown(struct net *); | ||
87 | void nfsd_export_flush(struct net *); | ||
88 | struct svc_export * rqst_exp_get_by_name(struct svc_rqst *, | ||
89 | struct path *); | ||
90 | struct svc_export * rqst_exp_parent(struct svc_rqst *, | ||
91 | struct path *); | ||
92 | struct svc_export * rqst_find_fsidzero_export(struct svc_rqst *); | ||
93 | int exp_rootfh(struct net *, struct auth_domain *, | ||
94 | char *path, struct knfsd_fh *, int maxsize); | ||
95 | __be32 exp_pseudoroot(struct svc_rqst *, struct svc_fh *); | ||
96 | __be32 nfserrno(int errno); | ||
97 | |||
98 | static inline void exp_put(struct svc_export *exp) | ||
99 | { | ||
100 | cache_put(&exp->h, exp->cd); | ||
101 | } | ||
102 | |||
103 | static inline void exp_get(struct svc_export *exp) | ||
104 | { | ||
105 | cache_get(&exp->h); | ||
106 | } | ||
107 | struct svc_export * rqst_exp_find(struct svc_rqst *, int, u32 *); | ||
108 | |||
109 | #endif /* NFSD_EXPORT_H */ | ||
diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h index 7d5c310678d0..72004caad718 100644 --- a/fs/nfsd/nfsd.h +++ b/fs/nfsd/nfsd.h | |||
@@ -19,9 +19,10 @@ | |||
19 | #include <linux/sunrpc/msg_prot.h> | 19 | #include <linux/sunrpc/msg_prot.h> |
20 | 20 | ||
21 | #include <linux/nfsd/debug.h> | 21 | #include <linux/nfsd/debug.h> |
22 | #include <linux/nfsd/export.h> | ||
23 | #include <linux/nfsd/stats.h> | 22 | #include <linux/nfsd/stats.h> |
24 | 23 | ||
24 | #include "export.h" | ||
25 | |||
25 | /* | 26 | /* |
26 | * nfsd version | 27 | * nfsd version |
27 | */ | 28 | */ |