diff --git a/libc/kernel/common/linux/nfsd/auth.h b/libc/kernel/common/linux/nfsd/auth.h
index a6d6fec..f840f0e 100644
--- a/libc/kernel/common/linux/nfsd/auth.h
+++ b/libc/kernel/common/linux/nfsd/auth.h
@@ -7,15 +7,9 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef LINUX_NFSD_AUTH_H
 #define LINUX_NFSD_AUTH_H
+
 #endif
diff --git a/libc/kernel/common/linux/nfsd/const.h b/libc/kernel/common/linux/nfsd/const.h
index 658a5d2..c345508 100644
--- a/libc/kernel/common/linux/nfsd/const.h
+++ b/libc/kernel/common/linux/nfsd/const.h
@@ -7,23 +7,18 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _LINUX_NFSD_CONST_H
 #define _LINUX_NFSD_CONST_H
+
 #include <linux/nfs.h>
 #include <linux/nfs2.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/nfs3.h>
 #include <linux/nfs4.h>
+
 #define NFSSVC_MAXVERS 3
+
 #define NFSSVC_MAXBLKSIZE (32*1024)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #endif
diff --git a/libc/kernel/common/linux/nfsd/debug.h b/libc/kernel/common/linux/nfsd/debug.h
index 7add7fd..9b90f05 100644
--- a/libc/kernel/common/linux/nfsd/debug.h
+++ b/libc/kernel/common/linux/nfsd/debug.h
@@ -7,35 +7,28 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef LINUX_NFSD_DEBUG_H
 #define LINUX_NFSD_DEBUG_H
+
 #include <linux/sunrpc/debug.h>
+
 #ifdef RPC_DEBUG
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NFSD_DEBUG 1
 #endif
+
 #define NFSDDBG_SOCK 0x0001
 #define NFSDDBG_FH 0x0002
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NFSDDBG_EXPORT 0x0004
 #define NFSDDBG_SVC 0x0008
 #define NFSDDBG_PROC 0x0010
 #define NFSDDBG_FILEOP 0x0020
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NFSDDBG_AUTH 0x0040
 #define NFSDDBG_REPCACHE 0x0080
 #define NFSDDBG_XDR 0x0100
 #define NFSDDBG_LOCKD 0x0200
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NFSDDBG_ALL 0x7FFF
 #define NFSDDBG_NOCHANGE 0xFFFF
+
 #endif
diff --git a/libc/kernel/common/linux/nfsd/export.h b/libc/kernel/common/linux/nfsd/export.h
index 7bb5774..932274f 100644
--- a/libc/kernel/common/linux/nfsd/export.h
+++ b/libc/kernel/common/linux/nfsd/export.h
@@ -7,38 +7,32 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef NFSD_EXPORT_H
 #define NFSD_EXPORT_H
+
 #include <asm/types.h>
+
 #define NFSCLNT_IDMAX 1024
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NFSCLNT_ADDRMAX 16
 #define NFSCLNT_KEYMAX 32
+
 #define NFSEXP_READONLY 0x0001
 #define NFSEXP_INSECURE_PORT 0x0002
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NFSEXP_ROOTSQUASH 0x0004
 #define NFSEXP_ALLSQUASH 0x0008
 #define NFSEXP_ASYNC 0x0010
 #define NFSEXP_GATHERED_WRITES 0x0020
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define NFSEXP_NOHIDE 0x0200
 #define NFSEXP_NOSUBTREECHECK 0x0400
 #define NFSEXP_NOAUTHNLM 0x0800  
 #define NFSEXP_MSNFS 0x1000  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NFSEXP_FSID 0x2000
 #define NFSEXP_CROSSMOUNT 0x4000
 #define NFSEXP_NOACL 0x8000  
 #define NFSEXP_ALLFLAGS 0xFE3F
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #endif
+
diff --git a/libc/kernel/common/linux/nfsd/interface.h b/libc/kernel/common/linux/nfsd/interface.h
index c9b81c1..3c3946a 100644
--- a/libc/kernel/common/linux/nfsd/interface.h
+++ b/libc/kernel/common/linux/nfsd/interface.h
@@ -7,15 +7,9 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef LINUX_NFSD_INTERFACE_H
 #define LINUX_NFSD_INTERFACE_H
+
 #endif
diff --git a/libc/kernel/common/linux/nfsd/nfsfh.h b/libc/kernel/common/linux/nfsd/nfsfh.h
index 152b2c6..13450d2 100644
--- a/libc/kernel/common/linux/nfsd/nfsfh.h
+++ b/libc/kernel/common/linux/nfsd/nfsfh.h
@@ -7,65 +7,56 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _LINUX_NFSD_FH_H
 #define _LINUX_NFSD_FH_H
+
 #include <asm/types.h>
 #include <linux/nfsd/const.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/nfsd/debug.h>
+
 struct nfs_fhbase_old {
  __u32 fb_dcookie;
  __u32 fb_ino;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 fb_dirino;
  __u32 fb_dev;
  __u32 fb_xdev;
  __u32 fb_xino;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 fb_generation;
 };
+
 struct nfs_fhbase_new {
  __u8 fb_version;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 fb_auth_type;
  __u8 fb_fsid_type;
  __u8 fb_fileid_type;
  __u32 fb_auth[1];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 };
+
 struct knfsd_fh {
  unsigned int fh_size;
  union {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct nfs_fhbase_old fh_old;
  __u32 fh_pad[NFS4_FHSIZE/4];
  struct nfs_fhbase_new fh_new;
  } fh_base;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 #define ofh_dcookie fh_base.fh_old.fb_dcookie
 #define ofh_ino fh_base.fh_old.fb_ino
 #define ofh_dirino fh_base.fh_old.fb_dirino
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ofh_dev fh_base.fh_old.fb_dev
 #define ofh_xdev fh_base.fh_old.fb_xdev
 #define ofh_xino fh_base.fh_old.fb_xino
 #define ofh_generation fh_base.fh_old.fb_generation
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define fh_version fh_base.fh_new.fb_version
 #define fh_fsid_type fh_base.fh_new.fb_fsid_type
 #define fh_auth_type fh_base.fh_new.fb_auth_type
 #define fh_fileid_type fh_base.fh_new.fb_fileid_type
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define fh_auth fh_base.fh_new.fb_auth
 #define fh_fsid fh_base.fh_new.fb_auth
+
 #endif
diff --git a/libc/kernel/common/linux/nfsd/stats.h b/libc/kernel/common/linux/nfsd/stats.h
index 46b0c02..647e65c 100644
--- a/libc/kernel/common/linux/nfsd/stats.h
+++ b/libc/kernel/common/linux/nfsd/stats.h
@@ -7,39 +7,32 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef LINUX_NFSD_STATS_H
 #define LINUX_NFSD_STATS_H
+
 #include <linux/nfs4.h>
+
 struct nfsd_stats {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int rchits;
  unsigned int rcmisses;
  unsigned int rcnocache;
  unsigned int fh_stale;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int fh_lookup;
  unsigned int fh_anon;
  unsigned int fh_nocache_dir;
  unsigned int fh_nocache_nondir;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int io_read;
  unsigned int io_write;
  unsigned int th_cnt;
  unsigned int th_usage[10];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int th_fullcnt;
  unsigned int ra_size;
  unsigned int ra_depth[11];
+
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define NFSD_USAGE_WRAP (HZ*1000000)
+
 #endif
diff --git a/libc/kernel/common/linux/nfsd/xdr.h b/libc/kernel/common/linux/nfsd/xdr.h
index 7a9ca56..f94961d 100644
--- a/libc/kernel/common/linux/nfsd/xdr.h
+++ b/libc/kernel/common/linux/nfsd/xdr.h
@@ -7,147 +7,135 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef LINUX_NFSD_H
 #define LINUX_NFSD_H
+
 #include <linux/fs.h>
 #include <linux/vfs.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/nfs.h>
+
 struct nfsd_fhandle {
  struct svc_fh fh;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 struct nfsd_sattrargs {
  struct svc_fh fh;
  struct iattr attrs;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 struct nfsd_diropargs {
  struct svc_fh fh;
  char * name;
  int len;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 struct nfsd_readargs {
  struct svc_fh fh;
  __u32 offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 count;
  struct kvec vec[RPCSVC_MAXPAGES];
  int vlen;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 struct nfsd_writeargs {
  svc_fh fh;
  __u32 offset;
  int len;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct kvec vec[RPCSVC_MAXPAGES];
  int vlen;
 };
+
 struct nfsd_createargs {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct svc_fh fh;
  char * name;
  int len;
  struct iattr attrs;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 struct nfsd_renameargs {
  struct svc_fh ffh;
  char * fname;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int flen;
  struct svc_fh tfh;
  char * tname;
  int tlen;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 struct nfsd_readlinkargs {
  struct svc_fh fh;
  char * buffer;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 struct nfsd_linkargs {
  struct svc_fh ffh;
  struct svc_fh tfh;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  char * tname;
  int tlen;
 };
+
 struct nfsd_symlinkargs {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct svc_fh ffh;
  char * fname;
  int flen;
  char * tname;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int tlen;
  struct iattr attrs;
 };
+
 struct nfsd_readdirargs {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct svc_fh fh;
  __u32 cookie;
  __u32 count;
  u32 * buffer;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 struct nfsd_attrstat {
  struct svc_fh fh;
  struct kstat stat;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 struct nfsd_diropres {
  struct svc_fh fh;
  struct kstat stat;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 struct nfsd_readlinkres {
  int len;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 struct nfsd_readres {
  struct svc_fh fh;
  unsigned long count;
  struct kstat stat;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 struct nfsd_readdirres {
  int count;
+
  struct readdir_cd common;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 * buffer;
  int buflen;
  u32 * offset;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 struct nfsd_statfsres {
  struct kstatfs stats;
 };
+
 union nfsd_xdrstore {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct nfsd_sattrargs sattr;
  struct nfsd_diropargs dirop;
  struct nfsd_readargs read;
  struct nfsd_writeargs write;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct nfsd_createargs create;
  struct nfsd_renameargs rename;
  struct nfsd_linkargs link;
  struct nfsd_symlinkargs symlink;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct nfsd_readdirargs readdir;
 };
+
 #define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)
+
 #endif
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
