)]}'
{
  "commit": "fcfa4aad26d0552f10c78e62dbf187757679f60f",
  "tree": "af0149fabed5ca3f3a45048278a03fd24e6282bf",
  "parents": [
    "4f770ac82ae35cbcdbfb9faa516fee913c18be7e"
  ],
  "author": {
    "name": "Theodore Ts\u0027o",
    "email": "tytso@mit.edu",
    "time": "Wed Nov 11 16:26:13 2026 +0000"
  },
  "committer": {
    "name": "Theodore Ts\u0027o",
    "email": "tytso@mit.edu",
    "time": "Wed Nov 11 16:36:23 2026 +0000"
  },
  "message": "ext4: add KUnit tests for fs/ext4/dir.c\n\nAdd a KUnit test suite (ext4_dir_test) in fs/ext4/dir-test.c covering\ndirectory entry validation, hash-cookie helpers, directory llseek, and\nboth linear and HTree directory iteration in fs/ext4/dir.c:\n\n- __ext4_check_dir_entry() and ext4_check_all_de() validation across\n  valid blocks (including fake \u0027.\u0027, \u0027..\u0027, and metadata_csum tail\n  entries, as well as encrypted+casefolded extended-hash entries) and\n  corrupt rec_len, alignment, name_len, block-end slack, overrun,\n  out-of-bounds inode numbers, and full-block \u0027.\u0027 entries.\n- is_dx_dir(), get_dtype(), and 32-bit vs 64-bit HTree telldir hash\n  position conversions (hash2pos, pos2maj_hash, pos2min_hash, and\n  ext4_get_htree_eof).\n- ext4_dir_operations open(), llseek() (64-bit and 32-bit HTree EOF\n  bounds vs non-DX s_bitmap_maxbytes/SEEK_END bounds and cookie\n  invalidation), and release().\n- ext4_htree_store_dirent() rbtree ordering across major/minor hashes,\n  64-bit hash collision chaining, and ext4_htree_free_dir_info().\n- Linear ext4_readdir() across multi-block directories with sparse\n  holes, deleted entries, stop/resume, unaligned f_pos revalidation on\n  i_version change, bad checksum and corrupt entry skipping, and\n  ERR_BAD_DX_DIR fallback clearing EXT4_INODE_INDEX.\n- HTree ext4_dx_readdir() across multi-leaf next_hash continuations,\n  mid-collision extra_fname stop/resume, EOF handling, seek reset, and\n  mid-iteration i_version refill.\n\nExport ext4_dir_operations, expose thin KUnit wrappers for static\nhelpers in fs/ext4/dir.c, and add a KUNIT_STATIC_STUB_REDIRECT hook to\next4_htree_fill_tree().\n\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cb0d7b6edf6dae929c92884739815781ca6ac5c9",
      "old_mode": 33188,
      "old_path": "fs/ext4/Makefile",
      "new_id": "a427f6f361e5ac728be7e378c8582d789068386d",
      "new_mode": 33188,
      "new_path": "fs/ext4/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4d7c7c89e8b9007f546e958ac8f68723821d4e20",
      "new_mode": 33188,
      "new_path": "fs/ext4/dir-test.c"
    },
    {
      "type": "modify",
      "old_id": "4214034b5aba431af6441799b8d42714b12f517c",
      "old_mode": 33188,
      "old_path": "fs/ext4/dir.c",
      "new_id": "ad14875c3a1f3c28b958c545ab2e7efe6271a5c9",
      "new_mode": 33188,
      "new_path": "fs/ext4/dir.c"
    },
    {
      "type": "modify",
      "old_id": "aaf4722e709efb9809cb4bb72d2235f2c4502dd0",
      "old_mode": 33188,
      "old_path": "fs/ext4/ext4.h",
      "new_id": "c7d64bb21c5794873448452ed48fb43c9b9953e4",
      "new_mode": 33188,
      "new_path": "fs/ext4/ext4.h"
    },
    {
      "type": "modify",
      "old_id": "63d01a9711a27edb3aad47dad50f96fb7567fc0f",
      "old_mode": 33188,
      "old_path": "fs/ext4/namei.c",
      "new_id": "e44e306d5ca6d468ec1be1a56aa7074d2086603d",
      "new_mode": 33188,
      "new_path": "fs/ext4/namei.c"
    }
  ]
}
