cvs commit: src/sys/ufs/ffs ffs_alloc.c ffs_softdep.c

Kris Kennaway kris at obsecurity.org
Fri Feb 23 20:41:16 UTC 2007


On Fri, Feb 23, 2007 at 08:23:36PM +0000, Brian Somers wrote:
> brian       2007-02-23 20:23:36 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/ufs/ffs          ffs_alloc.c ffs_softdep.c 
>   Log:
>   Account for di_blocks allocations when IN_SPACECOUNTED is set in an
>   inode's i_flag.
>   
>   It's possible that after ufs_infactive() calls softdep_releasefile(),
>   i_nlink stays >0 for a considerable amount of time (> 60 seconds here).
>   During this period, any ffs allocation routines that alter di_blocks
>   must also account for the blocks in the filesystem's fs_pendingblocks
>   value.
>   
>   This change fixes an eventual df/du discrepency that will happen as
>   the result of fs_pendingblocks being reduced to <0.
>   
>   The only manifestation of this that people may recognise is the
>   following message on boot:
>   
>       /somefs: update error: blocks -N files M
>   
>   at which point the negative pending block count is adjusted to zero.

\o/ I hate that bug!

Kris


More information about the cvs-src mailing list