> Another one of these on a different machine. Looks like something is
> definitely broken.

Assuming that start_lvl is zero, this looks like a broken DIAGNOSTIC
check that recently became a broken INVARIANTS check.

This happens when the block range spans two block maps, the first in the inode
(mapping up to NDADDR direct blocks) and the second being the first indirect
block. The current check assumes that both block maps are indirect blocks.

Try changing the check to something like

if (start_lvl > 0 &&
start_ap[start_lvl - 1].in_lbn == idp->in_lbn)
panic("ffs_reallocblk: start == end");

- Tor Egge
freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"