misc-next one-pass port plan

Zygo's ruling (2026-09-17): "Do misc-next in one pass." Not a trickle of catch-up commits -- one deliberate replay that brings the submission lane level with 6.18, once the parked-rbio fix is green.

Where the lanes stand

Measured 2026-09-17 by comparing commit subjects over each topic:

lane topics/stripe-alloc commits
6.18 (production) b72dc2da + the pending parkref fix 73
misc-next (submission) ff170b6a 39

The 39 on misc-next are a strict subject-subset of the 73 on 6.18 -- the comparison finds nothing on misc-next that 6.18 does not also have. So the port is an append, not a merge: no divergent work to reconcile, no commit to drop.

What moves

34 subjects are on 6.18 and not on misc-next. Two of them must NOT be ported; the other 32 do.

Do not port (6.18-only, by design)

  1. btrfs: stripe_alloc: refuse space_cache=v1
  2. btrfs: stripe_alloc: let the property accept a cache-less filesystem like the mount option does (b72dc2da)

Both exist because 6.18's mount path accepts a cache-less filesystem while misc-next's demands the free space tree outright (super.c, the btrfs_check_mountopts() gate). misc-next is therefore already symmetric between the mount option and the btrfs.stripe_alloc property, which is the property the pair restores on 6.18. Porting them would be a no-op at best. The covers README already records that the lane carries one 6.18-only patch (734c4596).

Port (32)

The ENOSPC/relocation/reclaim chain v2 (landed on 6.18 2026-09-16), the 7 review-round-1 fixes, and the stripe_meta reserve work:

Fold, do not append

btrfs: stripe_alloc: hold a reference on parked rbios (1459c2b83afb on 6.18) fixes the park machinery, and misc-next already carries the commit that introduces it -- btrfs: raid56: batch stripe_alloc partial writes into full-stripe writes. On a submission lane the bug must never exist between two patches of the same series, so fold it into that commit rather than append it. (On 6.18 it stays a separate commit: that lane is a production branch with a history worth reading.)

The same rule already applied on 6.18 for the mixed-block-group refusal, which was folded into the patch that introduces btrfs_stripe_alloc_check_support().

Checked 2026-09-17: all six of the fix's exact-string anchors match exactly once in misc-next's fs/btrfs/raid56.c. The bug is present on that lane and the edit applies unchanged, so the fold is mechanical -- blobedit.py with the same edits file (parkref-edits.json) against the park commit.

One open decision: the raid6 testing aid

6.18/topics/raid6-fixes carries a second commit as of 2026-09-17, zygo: DO-NOT-UPSTREAM: lib/raid6: raid6_pq.algo= pins gen_syndrome, kept on the topic so the pin the test rigs boot with survives a rebase and dropped before submission (Zygo's call). misc-next has not been given it, on the grounds that it is the submission lane and is build-check only there, so no rig boots it with a pin. Decide at the one-pass whether it belongs on misc-next/topics/raid6-fixes as well; if a misc-next kernel is ever used for raid6 coverage it does, and the driver's preflight will say so out loud either way.

Afterwards

  1. Re-make misc-next/testing and replay the zb64 tail (scripts/lane/lanetopic.sh, or candtopic.sh first if it should be built before the refs move).
  2. Update the cover letters on zygo-misc-next-zb64: the series count changes from 39, and the README row that says "one 6.18-only patch" stays true (both 6.18-only patches are in the same family, but the README counts patches -- recount it).
  3. The balance-resume cover (e1e3534f) stays a separate cover letter, per Zygo's ruling that its directed test not be bundled with stripe-alloc.

Caveat

The subject comparison is an oracle for what moves, not for whether it applies. misc-next sits on a newer base (kdave 7c6b5acf, 2026-09-16) and 6.18 is hand-adapted to v6.18.x, so 12 of 34 files already hash differently between the lanes (see [stripe-alloc lane drift]). Expect real conflict resolution in the replay, and check the content oracle per topic before trusting the result.