在 2008-08-21四的 11:35 -0400,Theodore Tso写道: > 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. > This situation (disk fills temporarily) is not new, we handled this in ext4_write_begin() (and other places) by retry allocation three times in case of ENOSPC error. we could do the same retry in ext4_da_writepages(). Mingming > - Ted > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html