Skip to content

fix(mft): preserve extension first_stream.size and dir_index in LIVE parser#6

Merged
githubrobbi merged 1 commit intomainfrom
fix-f-drive-parity
Mar 17, 2026
Merged

fix(mft): preserve extension first_stream.size and dir_index in LIVE parser#6
githubrobbi merged 1 commit intomainfrom
fix-f-drive-parity

Conversation

@githubrobbi
Copy link
Owner

Summary

  • Snapshot and restore first_stream.size when IOCP delivers extension records before their base record (fixes files showing size=0)
  • Include dir_index_size/dir_index_allocated in the extension parser's early-return guard (fixes directories missing $I30 index sizes)
  • Fixes 16,517 directory/file size differences (Bug C) in LIVE parity

Test plan

  • Compiles cleanly, zero warnings
  • All 105 uffs-mft tests pass
  • All workspace tests pass
  • Windows LIVE scan parity verification (SHA256 hash match)

🤖 Generated with Claude Code

…parser

Two root causes behind 16,517 directory size differences (Bug C):

1. IOCP out-of-order I/O: when an extension record is parsed before its
   base record, the base overwrites first_stream.size with 0 (losing the
   extension's $DATA size). Now snapshot and restore first_stream.size
   alongside the other extension-data snapshots.

2. Extension records with only $I30 attributes were silently skipped by
   the early-return guard (which didn't check dir_index_size). Now
   include dir_index_size/dir_index_allocated in both the guard and the
   return value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@githubrobbi githubrobbi merged commit 2c44c20 into main Mar 17, 2026
3 of 6 checks passed
@githubrobbi githubrobbi deleted the fix-f-drive-parity branch March 17, 2026 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant