diff --git a/libc/kernel/common/linux/jbd.h b/libc/kernel/common/linux/jbd.h
index 89956d7..7ba766c 100644
--- a/libc/kernel/common/linux/jbd.h
+++ b/libc/kernel/common/linux/jbd.h
@@ -7,107 +7,112 @@
  ***   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_JBD_H
 #define _LINUX_JBD_H
+
 #include "jfs_compat.h"
 #define JFS_DEBUG
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define jfs_debug jbd_debug
+
 #define journal_oom_retry 1
+
 #undef JBD_PARANOID_IOFAIL
+
 #define JBD_DEFAULT_MAX_COMMIT_AGE 5
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define jbd_debug(f, a...)  
+
 #define jbd_kmalloc(size, flags)   __jbd_kmalloc(__FUNCTION__, (size), (flags), journal_oom_retry)
 #define jbd_rep_kmalloc(size, flags)   __jbd_kmalloc(__FUNCTION__, (size), (flags), 1)
+
 #define JFS_MIN_JOURNAL_BLOCKS 1024
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define JFS_MAGIC_NUMBER 0xc03b3998U  
+
 #define JFS_DESCRIPTOR_BLOCK 1
 #define JFS_COMMIT_BLOCK 2
 #define JFS_SUPERBLOCK_V1 3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define JFS_SUPERBLOCK_V2 4
 #define JFS_REVOKE_BLOCK 5
+
 typedef struct journal_header_s
 {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __be32 h_magic;
  __be32 h_blocktype;
  __be32 h_sequence;
 } journal_header_t;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 typedef struct journal_block_tag_s
 {
  __be32 t_blocknr;
  __be32 t_flags;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } journal_block_tag_t;
+
 typedef struct journal_revoke_header_s
 {
  journal_header_t r_header;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __be32 r_count;
 } journal_revoke_header_t;
+
 #define JFS_FLAG_ESCAPE 1  
 #define JFS_FLAG_SAME_UUID 2  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define JFS_FLAG_DELETED 4  
 #define JFS_FLAG_LAST_TAG 8  
+
 typedef struct journal_superblock_s
 {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
  journal_header_t s_header;
+
  __be32 s_blocksize;
  __be32 s_maxlen;
  __be32 s_first;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
  __be32 s_sequence;
  __be32 s_start;
+
  __be32 s_errno;
+
  __be32 s_feature_compat;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __be32 s_feature_incompat;
  __be32 s_feature_ro_compat;
+
  __u8 s_uuid[16];
+
  __be32 s_nr_users;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
  __be32 s_dynsuper;
+
  __be32 s_max_transaction;
  __be32 s_max_trans_data;
+
  __u32 s_padding[44];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
  __u8 s_users[16*48];
+
 } journal_superblock_t;
+
 #define JFS_HAS_COMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask))))
 #define JFS_HAS_RO_COMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask))))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define JFS_HAS_INCOMPAT_FEATURE(j,mask)   ((j)->j_format_version >= 2 &&   ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
+
 #define JFS_FEATURE_INCOMPAT_REVOKE 0x00000001
+
 #define JFS_KNOWN_COMPAT_FEATURES 0
 #define JFS_KNOWN_ROCOMPAT_FEATURES 0
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define JFS_KNOWN_INCOMPAT_FEATURES JFS_FEATURE_INCOMPAT_REVOKE
+
 #define BJ_None 0  
 #define BJ_SyncData 1  
 #define BJ_Metadata 2  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define BJ_Forget 3  
 #define BJ_IO 4  
 #define BJ_Shadow 5  
 #define BJ_LogCtl 6  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define BJ_Reserved 7  
 #define BJ_Locked 8  
 #define BJ_Types 9
+
 #endif
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
