Skip to content

Commit 165fdb8

Browse files
authored
Merge pull request #4 from githubrobbi/fix-f-drive-parity
Fix Drive D/S parity: remove premature metrics + child sorting
2 parents 2557e8b + 90ee522 commit 165fdb8

File tree

6 files changed

+1
-33
lines changed

6 files changed

+1
-33
lines changed

crates/uffs-mft/src/index/builder.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -465,14 +465,7 @@ impl MftIndex {
465465
tracing::debug!("[TRIP] MftIndex::from_parsed_records -> Phase 2: ExtensionIndex::build");
466466
index.extension_index = Some(ExtensionIndex::build(&index));
467467

468-
// 2. Sort directory children for natural ordering (Phase 4)
469-
// CRITICAL: Must run BEFORE computing tree metrics for correct size
470-
// aggregation.
471-
tracing::debug!("[TRIP] MftIndex::from_parsed_records -> Phase 4: sort_directory_children");
472-
index.sort_directory_children();
473-
474-
// 3. Compute tree metrics for directory statistics (Phase 5)
475-
// Must run AFTER sorting - depends on sorted child traversal order.
468+
// 2. Compute tree metrics for directory statistics (Phase 5)
476469
tracing::debug!("[TRIP] MftIndex::from_parsed_records -> Phase 5: compute_tree_metrics");
477470
index.compute_tree_metrics();
478471

crates/uffs-mft/src/index/merge.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ impl MftIndex {
5454
debug!("🔨 Building extension index...");
5555
self.extension_index = Some(ExtensionIndex::build(self));
5656

57-
debug!("🔨 Sorting directory children...");
58-
self.sort_directory_children();
59-
6057
debug!("🔨 Computing tree metrics...");
6158
self.compute_tree_metrics();
6259

crates/uffs-mft/src/io/readers/parallel/to_index.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -486,13 +486,6 @@ impl ParallelMftReader {
486486
"✅ Sliding window IOCP with direct-to-index parsing complete (I/O overlap analysis)"
487487
);
488488

489-
// Compute tree metrics (size/allocated_size/descendant_count) for all
490-
// directories This is required for parity with the legacy multi-pass
491-
// pipeline, which called this in MftIndex::from_parsed_records(). The
492-
// direct-to-index path must call it explicitly after all records are
493-
// parsed and parent-child relationships are built.
494-
index.compute_tree_metrics();
495-
496489
Ok(index)
497490
}
498491
}

crates/uffs-mft/src/io/readers/parallel/to_index_parallel.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -525,13 +525,6 @@ impl ParallelMftReader {
525525
"✅ Parallel parsing IOCP with unified pipeline complete"
526526
);
527527

528-
// Compute tree metrics (size/allocated_size/descendant_count) for all
529-
// directories This is required for parity with the legacy multi-pass
530-
// pipeline, which called this in MftIndex::from_parsed_records(). The
531-
// direct-to-index path must call it explicitly after all records are
532-
// parsed and parent-child relationships are built.
533-
index.compute_tree_metrics();
534-
535528
Ok(index)
536529
}
537530
}

crates/uffs-mft/src/reader/index_read.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -620,11 +620,6 @@ impl MftReader {
620620

621621
let mut index = result?;
622622

623-
// Sort directory children first so tree metrics traverse in correct order.
624-
// Tree metrics computation depends on children being in sorted order to
625-
// produce accurate directory sizes and descendant counts.
626-
index.sort_directory_children();
627-
628623
// Compute tree metrics (directory sizes, descendant counts).
629624
// The legacy path gets this from `from_parsed_records()`, but the
630625
// inline path bypasses that, so we must call it explicitly.

crates/uffs-mft/src/reader/persistence.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -609,9 +609,6 @@ impl MftReader {
609609
}
610610
}
611611

612-
// Sort directory children
613-
index.sort_directory_children();
614-
615612
// Compute tree metrics
616613
index.compute_tree_metrics();
617614

0 commit comments

Comments
 (0)