Re: ENOSPC returned during writepages

Theodore Tso
2008-08-21T15:36:29Z

On Thu, Aug 21, 2008 at 08:48:15PM +0530, Aneesh Kumar K.V wrote:
> > I have a feeling that we did not try very hard before invalidate the
> > dirty page which fail to map to disks. Perhaps we should try a few more
> > times before give up. Also in that case, perhaps we should turn off
> > delalloc fs wide, so the new writers won't take the subsequently made
> > avaible free blocks away from this unlucky delalloc da writepages.
>
> How do we try hard ? The mballoc already try had to allocate blocks. So I
> am not sure what do we achieve by requesting for block allocation again.

So here's the problem that we face. If we have a situation where the
disk fills temporarily, but then subsequently space gets freed up, it
would be preferable if the dirty page isn't invalidated, and so
periodically (or perhaps via "there's-free-space-now notifier") we
retry the delayed allocation so we don't lose data during a transient
disk full situation. But at the same time, we don't want an fsync()
on the entire filesystem, or a umount on the filesystem, to hang
forever.

- Ted