summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorNamjae Jeon <linkinjeon@kernel.org>2026-09-08 15:52:46 +0900
committerNamjae Jeon <linkinjeon@kernel.org>2026-09-13 11:41:34 +0900
commit6d8c197c9992659a65525a07de4368c8401fdda7 (patch)
tree5834c415b8d524717056c7cb7ce392244551df36 /tools/perf/scripts/python
parentbc35965f6940a9bf834d54187b6088b8eb09206d (diff)
downloadlinux-next-6d8c197c9992659a65525a07de4368c8401fdda7.tar.gz
linux-next-6d8c197c9992659a65525a07de4368c8401fdda7.zip
ntfs: use dynamic MFT tail reservation
The ntfs MFT allocator historically treated records below 64 as a permanent extension area and stopped searching for $MFT extent records after record 400. Windows and ntfs3 do not maintain that on-disk layout, so an NTFS volume can have free MFT records while ntfs returns -ENOSPC when $MFT:$DATA needs another mapping-pairs extent. Use record 24 as the first normal record and maintain an in-memory tail reserve of up to four initialized records. Normal allocations skip the reserve, while $MFT metadata extent allocations consume it. When a new tail is initialized, allocate at least two records and reserve the following records to avoid recursive allocation during MFT extension. Existing free runs can seed the reserve on volumes mounted without one. For $MFT/$DATA, constrain an extent record to a record whose byte offset is below the new extent lowest VCN byte offset. This preserves bootstrap reachability without an arbitrary record 400 limit. If no safe record is available, validate and use reserved records 15, 12, 13, and 14 as bootstrap candidates while keeping their MFT bitmap entries in use. This allows existing Windows volumes to extend $MFT using their actual free records and prevents normal file allocation from consuming the metadata reserve. Fixes: 115380f9a2f9 ("ntfs: update mft operations") Reviewed-by: Hyunchul Lee <hyc.lee@gmail.com> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions