Commit 2ca72e17e5acb1052c35c9faba609c2289ce7a92
1 parent
f6af99ec1b
Exists in
master
and in
4 other branches
nfsd4: move idmap and acl header files into fs/nfsd
These are internal nfsd interfaces. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Showing 9 changed files with 133 additions and 132 deletions Side-by-side Diff
fs/nfsd/acl.h
1 | +/* | |
2 | + * include/linux/nfs4_acl.c | |
3 | + * | |
4 | + * Common NFSv4 ACL handling definitions. | |
5 | + * | |
6 | + * Copyright (c) 2002 The Regents of the University of Michigan. | |
7 | + * All rights reserved. | |
8 | + * | |
9 | + * Marius Aamodt Eriksen <marius@umich.edu> | |
10 | + * | |
11 | + * Redistribution and use in source and binary forms, with or without | |
12 | + * modification, are permitted provided that the following conditions | |
13 | + * are met: | |
14 | + * | |
15 | + * 1. Redistributions of source code must retain the above copyright | |
16 | + * notice, this list of conditions and the following disclaimer. | |
17 | + * 2. Redistributions in binary form must reproduce the above copyright | |
18 | + * notice, this list of conditions and the following disclaimer in the | |
19 | + * documentation and/or other materials provided with the distribution. | |
20 | + * 3. Neither the name of the University nor the names of its | |
21 | + * contributors may be used to endorse or promote products derived | |
22 | + * from this software without specific prior written permission. | |
23 | + * | |
24 | + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
25 | + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
26 | + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
27 | + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
28 | + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
29 | + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
30 | + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
31 | + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
32 | + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
33 | + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
34 | + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
35 | + */ | |
36 | + | |
37 | +#ifndef LINUX_NFS4_ACL_H | |
38 | +#define LINUX_NFS4_ACL_H | |
39 | + | |
40 | +#include <linux/posix_acl.h> | |
41 | + | |
42 | +/* Maximum ACL we'll accept from client; chosen (somewhat arbitrarily) to | |
43 | + * fit in a page: */ | |
44 | +#define NFS4_ACL_MAX 170 | |
45 | + | |
46 | +struct nfs4_acl *nfs4_acl_new(int); | |
47 | +int nfs4_acl_get_whotype(char *, u32); | |
48 | +int nfs4_acl_write_who(int who, char *p); | |
49 | +int nfs4_acl_permission(struct nfs4_acl *acl, uid_t owner, gid_t group, | |
50 | + uid_t who, u32 mask); | |
51 | + | |
52 | +#define NFS4_ACL_TYPE_DEFAULT 0x01 | |
53 | +#define NFS4_ACL_DIR 0x02 | |
54 | +#define NFS4_ACL_OWNER 0x04 | |
55 | + | |
56 | +struct nfs4_acl *nfs4_acl_posix_to_nfsv4(struct posix_acl *, | |
57 | + struct posix_acl *, unsigned int flags); | |
58 | +int nfs4_acl_nfsv4_to_posix(struct nfs4_acl *, struct posix_acl **, | |
59 | + struct posix_acl **, unsigned int flags); | |
60 | + | |
61 | +#endif /* LINUX_NFS4_ACL_H */ |
fs/nfsd/idmap.h
1 | +/* | |
2 | + * include/linux/nfsd_idmap.h | |
3 | + * | |
4 | + * Mapping of UID to name and vice versa. | |
5 | + * | |
6 | + * Copyright (c) 2002, 2003 The Regents of the University of | |
7 | + * Michigan. All rights reserved. | |
8 | +> * | |
9 | + * Marius Aamodt Eriksen <marius@umich.edu> | |
10 | + * | |
11 | + * Redistribution and use in source and binary forms, with or without | |
12 | + * modification, are permitted provided that the following conditions | |
13 | + * are met: | |
14 | + * | |
15 | + * 1. Redistributions of source code must retain the above copyright | |
16 | + * notice, this list of conditions and the following disclaimer. | |
17 | + * 2. Redistributions in binary form must reproduce the above copyright | |
18 | + * notice, this list of conditions and the following disclaimer in the | |
19 | + * documentation and/or other materials provided with the distribution. | |
20 | + * 3. Neither the name of the University nor the names of its | |
21 | + * contributors may be used to endorse or promote products derived | |
22 | + * from this software without specific prior written permission. | |
23 | + * | |
24 | + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
25 | + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
26 | + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
27 | + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
28 | + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
29 | + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
30 | + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
31 | + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
32 | + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
33 | + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
34 | + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
35 | + */ | |
36 | + | |
37 | +#ifndef LINUX_NFSD_IDMAP_H | |
38 | +#define LINUX_NFSD_IDMAP_H | |
39 | + | |
40 | +#include <linux/in.h> | |
41 | +#include <linux/sunrpc/svc.h> | |
42 | + | |
43 | +/* XXX from linux/nfs_idmap.h */ | |
44 | +#define IDMAP_NAMESZ 128 | |
45 | + | |
46 | +#ifdef CONFIG_NFSD_V4 | |
47 | +int nfsd_idmap_init(void); | |
48 | +void nfsd_idmap_shutdown(void); | |
49 | +#else | |
50 | +static inline int nfsd_idmap_init(void) | |
51 | +{ | |
52 | + return 0; | |
53 | +} | |
54 | +static inline void nfsd_idmap_shutdown(void) | |
55 | +{ | |
56 | +} | |
57 | +#endif | |
58 | + | |
59 | +int nfsd_map_name_to_uid(struct svc_rqst *, const char *, size_t, __u32 *); | |
60 | +int nfsd_map_name_to_gid(struct svc_rqst *, const char *, size_t, __u32 *); | |
61 | +int nfsd_map_uid_to_name(struct svc_rqst *, __u32, char *); | |
62 | +int nfsd_map_gid_to_name(struct svc_rqst *, __u32, char *); | |
63 | + | |
64 | +#endif /* LINUX_NFSD_IDMAP_H */ |
fs/nfsd/nfs4acl.c
fs/nfsd/nfs4idmap.c
fs/nfsd/nfs4xdr.c
... | ... | @@ -44,12 +44,13 @@ |
44 | 44 | #include <linux/namei.h> |
45 | 45 | #include <linux/statfs.h> |
46 | 46 | #include <linux/utsname.h> |
47 | -#include <linux/nfsd_idmap.h> | |
48 | -#include <linux/nfs4_acl.h> | |
49 | 47 | #include <linux/sunrpc/svcauth_gss.h> |
50 | 48 | |
49 | +#include "idmap.h" | |
50 | +#include "acl.h" | |
51 | 51 | #include "xdr4.h" |
52 | 52 | #include "vfs.h" |
53 | + | |
53 | 54 | |
54 | 55 | #define NFSDDBG_FACILITY NFSDDBG_XDR |
55 | 56 |
fs/nfsd/nfsctl.c
... | ... | @@ -8,12 +8,12 @@ |
8 | 8 | #include <linux/namei.h> |
9 | 9 | #include <linux/ctype.h> |
10 | 10 | |
11 | -#include <linux/nfsd_idmap.h> | |
12 | 11 | #include <linux/sunrpc/svcsock.h> |
13 | 12 | #include <linux/nfsd/syscall.h> |
14 | 13 | #include <linux/lockd/lockd.h> |
15 | 14 | #include <linux/sunrpc/clnt.h> |
16 | 15 | |
16 | +#include "idmap.h" | |
17 | 17 | #include "nfsd.h" |
18 | 18 | #include "cache.h" |
19 | 19 |
fs/nfsd/vfs.c
include/linux/nfs4_acl.h
1 | -/* | |
2 | - * include/linux/nfs4_acl.c | |
3 | - * | |
4 | - * Common NFSv4 ACL handling definitions. | |
5 | - * | |
6 | - * Copyright (c) 2002 The Regents of the University of Michigan. | |
7 | - * All rights reserved. | |
8 | - * | |
9 | - * Marius Aamodt Eriksen <marius@umich.edu> | |
10 | - * | |
11 | - * Redistribution and use in source and binary forms, with or without | |
12 | - * modification, are permitted provided that the following conditions | |
13 | - * are met: | |
14 | - * | |
15 | - * 1. Redistributions of source code must retain the above copyright | |
16 | - * notice, this list of conditions and the following disclaimer. | |
17 | - * 2. Redistributions in binary form must reproduce the above copyright | |
18 | - * notice, this list of conditions and the following disclaimer in the | |
19 | - * documentation and/or other materials provided with the distribution. | |
20 | - * 3. Neither the name of the University nor the names of its | |
21 | - * contributors may be used to endorse or promote products derived | |
22 | - * from this software without specific prior written permission. | |
23 | - * | |
24 | - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
25 | - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
26 | - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
27 | - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
28 | - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
29 | - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
30 | - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
31 | - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
32 | - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
33 | - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
34 | - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
35 | - */ | |
36 | - | |
37 | -#ifndef LINUX_NFS4_ACL_H | |
38 | -#define LINUX_NFS4_ACL_H | |
39 | - | |
40 | -#include <linux/posix_acl.h> | |
41 | - | |
42 | -/* Maximum ACL we'll accept from client; chosen (somewhat arbitrarily) to | |
43 | - * fit in a page: */ | |
44 | -#define NFS4_ACL_MAX 170 | |
45 | - | |
46 | -struct nfs4_acl *nfs4_acl_new(int); | |
47 | -int nfs4_acl_get_whotype(char *, u32); | |
48 | -int nfs4_acl_write_who(int who, char *p); | |
49 | -int nfs4_acl_permission(struct nfs4_acl *acl, uid_t owner, gid_t group, | |
50 | - uid_t who, u32 mask); | |
51 | - | |
52 | -#define NFS4_ACL_TYPE_DEFAULT 0x01 | |
53 | -#define NFS4_ACL_DIR 0x02 | |
54 | -#define NFS4_ACL_OWNER 0x04 | |
55 | - | |
56 | -struct nfs4_acl *nfs4_acl_posix_to_nfsv4(struct posix_acl *, | |
57 | - struct posix_acl *, unsigned int flags); | |
58 | -int nfs4_acl_nfsv4_to_posix(struct nfs4_acl *, struct posix_acl **, | |
59 | - struct posix_acl **, unsigned int flags); | |
60 | - | |
61 | -#endif /* LINUX_NFS4_ACL_H */ |
include/linux/nfsd_idmap.h
1 | -/* | |
2 | - * include/linux/nfsd_idmap.h | |
3 | - * | |
4 | - * Mapping of UID to name and vice versa. | |
5 | - * | |
6 | - * Copyright (c) 2002, 2003 The Regents of the University of | |
7 | - * Michigan. All rights reserved. | |
8 | -> * | |
9 | - * Marius Aamodt Eriksen <marius@umich.edu> | |
10 | - * | |
11 | - * Redistribution and use in source and binary forms, with or without | |
12 | - * modification, are permitted provided that the following conditions | |
13 | - * are met: | |
14 | - * | |
15 | - * 1. Redistributions of source code must retain the above copyright | |
16 | - * notice, this list of conditions and the following disclaimer. | |
17 | - * 2. Redistributions in binary form must reproduce the above copyright | |
18 | - * notice, this list of conditions and the following disclaimer in the | |
19 | - * documentation and/or other materials provided with the distribution. | |
20 | - * 3. Neither the name of the University nor the names of its | |
21 | - * contributors may be used to endorse or promote products derived | |
22 | - * from this software without specific prior written permission. | |
23 | - * | |
24 | - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
25 | - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
26 | - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
27 | - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
28 | - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
29 | - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
30 | - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
31 | - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
32 | - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
33 | - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
34 | - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
35 | - */ | |
36 | - | |
37 | -#ifndef LINUX_NFSD_IDMAP_H | |
38 | -#define LINUX_NFSD_IDMAP_H | |
39 | - | |
40 | -#include <linux/in.h> | |
41 | -#include <linux/sunrpc/svc.h> | |
42 | - | |
43 | -/* XXX from linux/nfs_idmap.h */ | |
44 | -#define IDMAP_NAMESZ 128 | |
45 | - | |
46 | -#ifdef CONFIG_NFSD_V4 | |
47 | -int nfsd_idmap_init(void); | |
48 | -void nfsd_idmap_shutdown(void); | |
49 | -#else | |
50 | -static inline int nfsd_idmap_init(void) | |
51 | -{ | |
52 | - return 0; | |
53 | -} | |
54 | -static inline void nfsd_idmap_shutdown(void) | |
55 | -{ | |
56 | -} | |
57 | -#endif | |
58 | - | |
59 | -int nfsd_map_name_to_uid(struct svc_rqst *, const char *, size_t, __u32 *); | |
60 | -int nfsd_map_name_to_gid(struct svc_rqst *, const char *, size_t, __u32 *); | |
61 | -int nfsd_map_uid_to_name(struct svc_rqst *, __u32, char *); | |
62 | -int nfsd_map_gid_to_name(struct svc_rqst *, __u32, char *); | |
63 | - | |
64 | -#endif /* LINUX_NFSD_IDMAP_H */ |