tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: WAPL panic



On Wed, Nov 07, 2012 at 12:04:01PM +0100, J. Hannken-Illjes wrote:
 > > ffs_truncate calls both, but mkdir shouldn't result in things being
 > > released... or so I'd think.
 > 
 > It does. Just before returning ufs_direnter() tries to short the
 > directory and calls UFS_TRUNCATE() aka ffs_truncate().

But if you're looping calling mkdir it shouldn't end up discarding
blocks. Or at least, not a lot of blocks. It might discard a bunch on
the first run, but after that the directory should only grow.

I think.

Maybe if the directory was huge to start off with, and then got lots
of stuff removed, the next mkdir after that will cause it to truncate
enough material to hit the panic.

But I don't see why it wouldn't have already truncated the directory
during the removals in that case.

 > No idea if or when the conditional "ulr->ulr_endoff < dp->i_size" fires.

ulr_endoff is left behind by ufs_lookup to indicate where it found the
end of the nonempty data.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index