panic: ffs_reallocblk: start == end

Tor Egge Tor.Egge at cvsup.no.freebsd.org
Thu Nov 15 19:38:18 PST 2007


> 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

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


- Tor Egge


More information about the freebsd-current mailing list