Hi. On Fri, Jun 20, 2008 at 05:34:21PM -0500, Steve French (smfrench@xxxxxxxxx) wrote: > > Right, but with the current implementation, once filemap_fdatawrite > > returns, any pages that that run touched are either written out or > > discarded. Depending on writepages() implementation, it is not always the case. > That could explain some problems if true. When writepages fails, we > make the pages as in error (PG_error flag?) and presumably they are > still dirty. Why in the world would anyone free the pages just > because we failed the first time and need to write them again later? > Do you where (presumably in /mm) pages could be freed that are still > dirty (it is hard to find where the PG_error flag is checked etc)? You can clear writeback bit but leave/set dirty bit in completion callback for given request. You can manually insert page into radix tree with dirty tag. You can also lock page and do not allow to unlock it until you resent your data. So, there is plenty of possibilities to break page accounting in own writepages() method :) -- Evgeniy Polyakov -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html