- block_subsystem.c (vendored): every public function's body becomes a static *_locked function; bodies call each other only through the _locked forms, breaking the internal cycles (relocate, meta relocate, migration scan, firsttouch, the meta accessors). Thin public wrappers take g_lock_block under __STARKERNEL__; hosted build has no lock and still builds clean. - Lock order: hermes, switch, registry, doe, log, block, console, heap, vmm, pmm (Stadium, MC-0d, above block). - Documented, not coverable by this lock: blk_get_buffer() pointers are used after release -- block-buffer ownership across cores is open for MC-3. - Probe (removed): block lock balances on all three ISAs (2,057-2,379 acquisitions), 0 recursions, 0 held at switch; vblk_io timeouts (0/0/4 probe, 0/0/2 acceptance) within the pre-lock riscv64 baseline of 0-6. - Standard sequence on amd64/aarch64/riscv64: hashes and G byte-identical to MC-0b, MINT/WIREBIND/USE ok, conservation true, 0 idle growth. - FABRIC-3.10.8 §3.2 wording fix; lock order noted as checked by inspection only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0 B
0 B
The file is empty.