Re: [PATCH] [Request for inclusion] Filesystem in Userspace

Anton Altaparmakov
2004-11-21T11:58:01Z

On Sun, 21 Nov 2004, Miklos Szeredi wrote:
> OK, I see your point. But can't the memory subsystem be tought, that
> those pages are not guaranteed to be written back in a limited time?

It already is. Your address space ->writepage can do

redirty_page_for_writepage(wbc, page);
unlock_page(page);
return 0;

And that is fine. NTFS does this. As does Reiserfs I believe.

For NTFS I do it exactly when I get to -ENOMEM so that I don't have enough
memory to coplete the writepage so I abort the write and redirty the page
so it gets tried again at a later time when more memory is freed. The
writeback control (wbc) ensures the VM doesn't just keep calling us trying
to clean the page to free it. It knows it is pointless so it gives up.
The OOM killer can then kill some other app which will free memory, and
then the writepage will be retried and it will succeed. Now I know
the fuse fs can be swapped out but why that would lead to a deadlock I
can't see. There always is something else to kill to free memory so the
fs can be swapped back in. And if the fs is killed surely all its pages
will be invalidated and thrown away by fuse, no?

Best regards,

Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/