Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

UAPI: (Scripted) Disintegrate include/linux/nfsd

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>

+246 -203
-5
include/linux/nfsd/Kbuild
··· 1 - header-y += cld.h 2 - header-y += debug.h 3 - header-y += export.h 4 - header-y += nfsfh.h 5 - header-y += stats.h
include/linux/nfsd/cld.h include/uapi/linux/nfsd/cld.h
+1 -30
include/linux/nfsd/debug.h
··· 5 5 * 6 6 * Copyright (C) 1995 Olaf Kirch <okir@monad.swb.de> 7 7 */ 8 - 9 8 #ifndef LINUX_NFSD_DEBUG_H 10 9 #define LINUX_NFSD_DEBUG_H 11 10 12 - #include <linux/sunrpc/debug.h> 11 + #include <uapi/linux/nfsd/debug.h> 13 12 14 - /* 15 - * Enable debugging for nfsd. 16 - * Requires RPC_DEBUG. 17 - */ 18 - #ifdef RPC_DEBUG 19 - # define NFSD_DEBUG 1 20 - #endif 21 - 22 - /* 23 - * knfsd debug flags 24 - */ 25 - #define NFSDDBG_SOCK 0x0001 26 - #define NFSDDBG_FH 0x0002 27 - #define NFSDDBG_EXPORT 0x0004 28 - #define NFSDDBG_SVC 0x0008 29 - #define NFSDDBG_PROC 0x0010 30 - #define NFSDDBG_FILEOP 0x0020 31 - #define NFSDDBG_AUTH 0x0040 32 - #define NFSDDBG_REPCACHE 0x0080 33 - #define NFSDDBG_XDR 0x0100 34 - #define NFSDDBG_LOCKD 0x0200 35 - #define NFSDDBG_ALL 0x7FFF 36 - #define NFSDDBG_NOCHANGE 0xFFFF 37 - 38 - 39 - #ifdef __KERNEL__ 40 13 # undef ifdebug 41 14 # ifdef NFSD_DEBUG 42 15 # define ifdebug(flag) if (nfsd_debug & NFSDDBG_##flag) 43 16 # else 44 17 # define ifdebug(flag) if (0) 45 18 # endif 46 - #endif /* __KERNEL__ */ 47 - 48 19 #endif /* LINUX_NFSD_DEBUG_H */
+1 -51
include/linux/nfsd/export.h
··· 6 6 * 7 7 * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de> 8 8 */ 9 - 10 9 #ifndef NFSD_EXPORT_H 11 10 #define NFSD_EXPORT_H 12 11 13 - # include <linux/types.h> 14 - #ifdef __KERNEL__ 15 12 # include <linux/nfsd/nfsfh.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__ 13 + #include <uapi/linux/nfsd/export.h> 61 14 62 15 /* 63 16 * FS Locations ··· 107 154 } 108 155 struct svc_export * rqst_exp_find(struct svc_rqst *, int, u32 *); 109 156 110 - #endif /* __KERNEL__ */ 111 - 112 157 #endif /* NFSD_EXPORT_H */ 113 -
+1 -110
include/linux/nfsd/nfsfh.h
··· 10 10 * 11 11 * Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de> 12 12 */ 13 - 14 13 #ifndef _LINUX_NFSD_FH_H 15 14 #define _LINUX_NFSD_FH_H 16 15 17 - #include <linux/types.h> 18 - #include <linux/nfs.h> 19 - #include <linux/nfs2.h> 20 - #include <linux/nfs3.h> 21 - #include <linux/nfs4.h> 22 - #ifdef __KERNEL__ 23 16 # include <linux/sunrpc/svc.h> 24 - #endif 25 - 26 - /* 27 - * This is the old "dentry style" Linux NFSv2 file handle. 28 - * 29 - * The xino and xdev fields are currently used to transport the 30 - * ino/dev of the exported inode. 31 - */ 32 - struct nfs_fhbase_old { 33 - __u32 fb_dcookie; /* dentry cookie - always 0xfeebbaca */ 34 - __u32 fb_ino; /* our inode number */ 35 - __u32 fb_dirino; /* dir inode number, 0 for directories */ 36 - __u32 fb_dev; /* our device */ 37 - __u32 fb_xdev; 38 - __u32 fb_xino; 39 - __u32 fb_generation; 40 - }; 41 - 42 - /* 43 - * This is the new flexible, extensible style NFSv2/v3 file handle. 44 - * by Neil Brown <neilb@cse.unsw.edu.au> - March 2000 45 - * 46 - * The file handle starts with a sequence of four-byte words. 47 - * The first word contains a version number (1) and three descriptor bytes 48 - * that tell how the remaining 3 variable length fields should be handled. 49 - * These three bytes are auth_type, fsid_type and fileid_type. 50 - * 51 - * All four-byte values are in host-byte-order. 52 - * 53 - * The auth_type field specifies how the filehandle can be authenticated 54 - * This might allow a file to be confirmed to be in a writable part of a 55 - * filetree without checking the path from it up to the root. 56 - * Current values: 57 - * 0 - No authentication. fb_auth is 0 bytes long 58 - * Possible future values: 59 - * 1 - 4 bytes taken from MD5 hash of the remainer of the file handle 60 - * prefixed by a secret and with the important export flags. 61 - * 62 - * The fsid_type identifies how the filesystem (or export point) is 63 - * encoded. 64 - * Current values: 65 - * 0 - 4 byte device id (ms-2-bytes major, ls-2-bytes minor), 4byte inode number 66 - * NOTE: we cannot use the kdev_t device id value, because kdev_t.h 67 - * says we mustn't. We must break it up and reassemble. 68 - * 1 - 4 byte user specified identifier 69 - * 2 - 4 byte major, 4 byte minor, 4 byte inode number - DEPRECATED 70 - * 3 - 4 byte device id, encoded for user-space, 4 byte inode number 71 - * 4 - 4 byte inode number and 4 byte uuid 72 - * 5 - 8 byte uuid 73 - * 6 - 16 byte uuid 74 - * 7 - 8 byte inode number and 16 byte uuid 75 - * 76 - * The fileid_type identified how the file within the filesystem is encoded. 77 - * This is (will be) passed to, and set by, the underlying filesystem if it supports 78 - * filehandle operations. The filesystem must not use the value '0' or '0xff' and may 79 - * only use the values 1 and 2 as defined below: 80 - * Current values: 81 - * 0 - The root, or export point, of the filesystem. fb_fileid is 0 bytes. 82 - * 1 - 32bit inode number, 32 bit generation number. 83 - * 2 - 32bit inode number, 32 bit generation number, 32 bit parent directory inode number. 84 - * 85 - */ 86 - struct nfs_fhbase_new { 87 - __u8 fb_version; /* == 1, even => nfs_fhbase_old */ 88 - __u8 fb_auth_type; 89 - __u8 fb_fsid_type; 90 - __u8 fb_fileid_type; 91 - __u32 fb_auth[1]; 92 - /* __u32 fb_fsid[0]; floating */ 93 - /* __u32 fb_fileid[0]; floating */ 94 - }; 95 - 96 - struct knfsd_fh { 97 - unsigned int fh_size; /* significant for NFSv3. 98 - * Points to the current size while building 99 - * a new file handle 100 - */ 101 - union { 102 - struct nfs_fhbase_old fh_old; 103 - __u32 fh_pad[NFS4_FHSIZE/4]; 104 - struct nfs_fhbase_new fh_new; 105 - } fh_base; 106 - }; 107 - 108 - #define ofh_dcookie fh_base.fh_old.fb_dcookie 109 - #define ofh_ino fh_base.fh_old.fb_ino 110 - #define ofh_dirino fh_base.fh_old.fb_dirino 111 - #define ofh_dev fh_base.fh_old.fb_dev 112 - #define ofh_xdev fh_base.fh_old.fb_xdev 113 - #define ofh_xino fh_base.fh_old.fb_xino 114 - #define ofh_generation fh_base.fh_old.fb_generation 115 - 116 - #define fh_version fh_base.fh_new.fb_version 117 - #define fh_fsid_type fh_base.fh_new.fb_fsid_type 118 - #define fh_auth_type fh_base.fh_new.fb_auth_type 119 - #define fh_fileid_type fh_base.fh_new.fb_fileid_type 120 - #define fh_auth fh_base.fh_new.fb_auth 121 - #define fh_fsid fh_base.fh_new.fb_auth 122 - 123 - #ifdef __KERNEL__ 17 + #include <uapi/linux/nfsd/nfsfh.h> 124 18 125 19 static inline __u32 ino_t_to_u32(ino_t ino) 126 20 { ··· 59 165 #endif /* CONFIG_NFSD_V3 */ 60 166 61 167 } svc_fh; 62 - 63 - #endif /* __KERNEL__ */ 64 - 65 168 66 169 #endif /* _LINUX_NFSD_FH_H */
+1 -7
include/linux/nfsd/stats.h
··· 5 5 * 6 6 * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de> 7 7 */ 8 - 9 8 #ifndef LINUX_NFSD_STATS_H 10 9 #define LINUX_NFSD_STATS_H 11 10 12 - #include <linux/nfs4.h> 11 + #include <uapi/linux/nfsd/stats.h> 13 12 14 - /* thread usage wraps very million seconds (approx one fortnight) */ 15 - #define NFSD_USAGE_WRAP (HZ*1000000) 16 - 17 - #ifdef __KERNEL__ 18 13 19 14 struct nfsd_stats { 20 15 unsigned int rchits; /* repcache hits */ ··· 42 47 void nfsd_stat_init(void); 43 48 void nfsd_stat_shutdown(void); 44 49 45 - #endif /* __KERNEL__ */ 46 50 #endif /* LINUX_NFSD_STATS_H */
+5
include/uapi/linux/nfsd/Kbuild
··· 1 1 # UAPI Header export list 2 + header-y += cld.h 3 + header-y += debug.h 4 + header-y += export.h 5 + header-y += nfsfh.h 6 + header-y += stats.h
+40
include/uapi/linux/nfsd/debug.h
··· 1 + /* 2 + * linux/include/linux/nfsd/debug.h 3 + * 4 + * Debugging-related stuff for nfsd 5 + * 6 + * Copyright (C) 1995 Olaf Kirch <okir@monad.swb.de> 7 + */ 8 + 9 + #ifndef _UAPILINUX_NFSD_DEBUG_H 10 + #define _UAPILINUX_NFSD_DEBUG_H 11 + 12 + #include <linux/sunrpc/debug.h> 13 + 14 + /* 15 + * Enable debugging for nfsd. 16 + * Requires RPC_DEBUG. 17 + */ 18 + #ifdef RPC_DEBUG 19 + # define NFSD_DEBUG 1 20 + #endif 21 + 22 + /* 23 + * knfsd debug flags 24 + */ 25 + #define NFSDDBG_SOCK 0x0001 26 + #define NFSDDBG_FH 0x0002 27 + #define NFSDDBG_EXPORT 0x0004 28 + #define NFSDDBG_SVC 0x0008 29 + #define NFSDDBG_PROC 0x0010 30 + #define NFSDDBG_FILEOP 0x0020 31 + #define NFSDDBG_AUTH 0x0040 32 + #define NFSDDBG_REPCACHE 0x0080 33 + #define NFSDDBG_XDR 0x0100 34 + #define NFSDDBG_LOCKD 0x0200 35 + #define NFSDDBG_ALL 0x7FFF 36 + #define NFSDDBG_NOCHANGE 0xFFFF 37 + 38 + 39 + 40 + #endif /* _UAPILINUX_NFSD_DEBUG_H */
+58
include/uapi/linux/nfsd/export.h
··· 1 + /* 2 + * include/linux/nfsd/export.h 3 + * 4 + * Public declarations for NFS exports. The definitions for the 5 + * syscall interface are in nfsctl.h 6 + * 7 + * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de> 8 + */ 9 + 10 + #ifndef _UAPINFSD_EXPORT_H 11 + #define _UAPINFSD_EXPORT_H 12 + 13 + # include <linux/types.h> 14 + 15 + /* 16 + * Important limits for the exports stuff. 17 + */ 18 + #define NFSCLNT_IDMAX 1024 19 + #define NFSCLNT_ADDRMAX 16 20 + #define NFSCLNT_KEYMAX 32 21 + 22 + /* 23 + * Export flags. 24 + */ 25 + #define NFSEXP_READONLY 0x0001 26 + #define NFSEXP_INSECURE_PORT 0x0002 27 + #define NFSEXP_ROOTSQUASH 0x0004 28 + #define NFSEXP_ALLSQUASH 0x0008 29 + #define NFSEXP_ASYNC 0x0010 30 + #define NFSEXP_GATHERED_WRITES 0x0020 31 + /* 40 80 100 currently unused */ 32 + #define NFSEXP_NOHIDE 0x0200 33 + #define NFSEXP_NOSUBTREECHECK 0x0400 34 + #define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */ 35 + #define NFSEXP_MSNFS 0x1000 /* do silly things that MS clients expect; no longer supported */ 36 + #define NFSEXP_FSID 0x2000 37 + #define NFSEXP_CROSSMOUNT 0x4000 38 + #define NFSEXP_NOACL 0x8000 /* reserved for possible ACL related use */ 39 + /* 40 + * The NFSEXP_V4ROOT flag causes the kernel to give access only to NFSv4 41 + * clients, and only to the single directory that is the root of the 42 + * export; further lookup and readdir operations are treated as if every 43 + * subdirectory was a mountpoint, and ignored if they are not themselves 44 + * exported. This is used by nfsd and mountd to construct the NFSv4 45 + * pseudofilesystem, which provides access only to paths leading to each 46 + * exported filesystem. 47 + */ 48 + #define NFSEXP_V4ROOT 0x10000 49 + /* All flags that we claim to support. (Note we don't support NOACL.) */ 50 + #define NFSEXP_ALLFLAGS 0x17E3F 51 + 52 + /* The flags that may vary depending on security flavor: */ 53 + #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ 54 + | NFSEXP_ALLSQUASH \ 55 + | NFSEXP_INSECURE_PORT) 56 + 57 + 58 + #endif /* _UAPINFSD_EXPORT_H */
+122
include/uapi/linux/nfsd/nfsfh.h
··· 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 + */ 13 + 14 + #ifndef _UAPI_LINUX_NFSD_FH_H 15 + #define _UAPI_LINUX_NFSD_FH_H 16 + 17 + #include <linux/types.h> 18 + #include <linux/nfs.h> 19 + #include <linux/nfs2.h> 20 + #include <linux/nfs3.h> 21 + #include <linux/nfs4.h> 22 + 23 + /* 24 + * This is the old "dentry style" Linux NFSv2 file handle. 25 + * 26 + * The xino and xdev fields are currently used to transport the 27 + * ino/dev of the exported inode. 28 + */ 29 + struct nfs_fhbase_old { 30 + __u32 fb_dcookie; /* dentry cookie - always 0xfeebbaca */ 31 + __u32 fb_ino; /* our inode number */ 32 + __u32 fb_dirino; /* dir inode number, 0 for directories */ 33 + __u32 fb_dev; /* our device */ 34 + __u32 fb_xdev; 35 + __u32 fb_xino; 36 + __u32 fb_generation; 37 + }; 38 + 39 + /* 40 + * This is the new flexible, extensible style NFSv2/v3 file handle. 41 + * by Neil Brown <neilb@cse.unsw.edu.au> - March 2000 42 + * 43 + * The file handle starts with a sequence of four-byte words. 44 + * The first word contains a version number (1) and three descriptor bytes 45 + * that tell how the remaining 3 variable length fields should be handled. 46 + * These three bytes are auth_type, fsid_type and fileid_type. 47 + * 48 + * All four-byte values are in host-byte-order. 49 + * 50 + * The auth_type field specifies how the filehandle can be authenticated 51 + * This might allow a file to be confirmed to be in a writable part of a 52 + * filetree without checking the path from it up to the root. 53 + * Current values: 54 + * 0 - No authentication. fb_auth is 0 bytes long 55 + * Possible future values: 56 + * 1 - 4 bytes taken from MD5 hash of the remainer of the file handle 57 + * prefixed by a secret and with the important export flags. 58 + * 59 + * The fsid_type identifies how the filesystem (or export point) is 60 + * encoded. 61 + * Current values: 62 + * 0 - 4 byte device id (ms-2-bytes major, ls-2-bytes minor), 4byte inode number 63 + * NOTE: we cannot use the kdev_t device id value, because kdev_t.h 64 + * says we mustn't. We must break it up and reassemble. 65 + * 1 - 4 byte user specified identifier 66 + * 2 - 4 byte major, 4 byte minor, 4 byte inode number - DEPRECATED 67 + * 3 - 4 byte device id, encoded for user-space, 4 byte inode number 68 + * 4 - 4 byte inode number and 4 byte uuid 69 + * 5 - 8 byte uuid 70 + * 6 - 16 byte uuid 71 + * 7 - 8 byte inode number and 16 byte uuid 72 + * 73 + * The fileid_type identified how the file within the filesystem is encoded. 74 + * This is (will be) passed to, and set by, the underlying filesystem if it supports 75 + * filehandle operations. The filesystem must not use the value '0' or '0xff' and may 76 + * only use the values 1 and 2 as defined below: 77 + * Current values: 78 + * 0 - The root, or export point, of the filesystem. fb_fileid is 0 bytes. 79 + * 1 - 32bit inode number, 32 bit generation number. 80 + * 2 - 32bit inode number, 32 bit generation number, 32 bit parent directory inode number. 81 + * 82 + */ 83 + struct nfs_fhbase_new { 84 + __u8 fb_version; /* == 1, even => nfs_fhbase_old */ 85 + __u8 fb_auth_type; 86 + __u8 fb_fsid_type; 87 + __u8 fb_fileid_type; 88 + __u32 fb_auth[1]; 89 + /* __u32 fb_fsid[0]; floating */ 90 + /* __u32 fb_fileid[0]; floating */ 91 + }; 92 + 93 + struct knfsd_fh { 94 + unsigned int fh_size; /* significant for NFSv3. 95 + * Points to the current size while building 96 + * a new file handle 97 + */ 98 + union { 99 + struct nfs_fhbase_old fh_old; 100 + __u32 fh_pad[NFS4_FHSIZE/4]; 101 + struct nfs_fhbase_new fh_new; 102 + } fh_base; 103 + }; 104 + 105 + #define ofh_dcookie fh_base.fh_old.fb_dcookie 106 + #define ofh_ino fh_base.fh_old.fb_ino 107 + #define ofh_dirino fh_base.fh_old.fb_dirino 108 + #define ofh_dev fh_base.fh_old.fb_dev 109 + #define ofh_xdev fh_base.fh_old.fb_xdev 110 + #define ofh_xino fh_base.fh_old.fb_xino 111 + #define ofh_generation fh_base.fh_old.fb_generation 112 + 113 + #define fh_version fh_base.fh_new.fb_version 114 + #define fh_fsid_type fh_base.fh_new.fb_fsid_type 115 + #define fh_auth_type fh_base.fh_new.fb_auth_type 116 + #define fh_fileid_type fh_base.fh_new.fb_fileid_type 117 + #define fh_auth fh_base.fh_new.fb_auth 118 + #define fh_fsid fh_base.fh_new.fb_auth 119 + 120 + 121 + 122 + #endif /* _UAPI_LINUX_NFSD_FH_H */
+17
include/uapi/linux/nfsd/stats.h
··· 1 + /* 2 + * linux/include/linux/nfsd/stats.h 3 + * 4 + * Statistics for NFS server. 5 + * 6 + * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de> 7 + */ 8 + 9 + #ifndef _UAPILINUX_NFSD_STATS_H 10 + #define _UAPILINUX_NFSD_STATS_H 11 + 12 + #include <linux/nfs4.h> 13 + 14 + /* thread usage wraps very million seconds (approx one fortnight) */ 15 + #define NFSD_USAGE_WRAP (HZ*1000000) 16 + 17 + #endif /* _UAPILINUX_NFSD_STATS_H */