Re: svn commit: r187468 - head/sys/ufs/ffs

From: Kostik Belousov <kostikbel_at_gmail.com>
Date: Tue, 20 Jan 2009 14:30:22 +0200
On Tue, Jan 20, 2009 at 12:52:33PM +0100, Roman Divacky wrote:
> On Tue, Jan 20, 2009 at 11:30:22AM +0000, Konstantin Belousov wrote:
> > Author: kib
> > Date: Tue Jan 20 11:30:22 2009
> > New Revision: 187468
> > URL: http://svn.freebsd.org/changeset/base/187468
> > 
> > Log:
> >   When extending inode size, we call vnode_pager_setsize(), to have a
> >   address space where to put vnode pages, and then call UFS_BALLOC(),
> >   to actually allocate new block and map it. When UFS_BALLOC() returns
> >   error, sometimes we forget to revert the vm object size increase,
> >   allowing for the pages that are not backed by the logical disk blocks.
> >   
> >   Revert vnode_pager_setsize() back when UFS_BALLOC() failed, for
> >   ffs_truncate() and ffs_write().
> 
> can you describe in what scenario this can trigger? can it be that
> many smallish (a few tens of kB?) of mmaped files being read/write
> may cause this?

The usual scenario is either a full partition or exceeded block quotas
for the user that writes the file and then mmap it.

Received on Tue Jan 20 2009 - 12:30:31 UTC