So while this looks good to me, > + for (i = 0; i < bp->b_folio_count; i++) { > + if (bp->b_folios[i]) > + __folio_put(bp->b_folios[i]); The __folio_put here really needs to be folio_put or page alloc debugging gets very unhappy. But even with that fixed on top of this patch the first mount just hangs without a useful kernel backtrace in /proc/*/stack, although running with the entire ѕeries applied it does pass the basic sanity checking so far.