Re: [PATCH] filemap_fdatasync & related changes

Daniel Phillips (phillips@innominate.de)
Wed, 03 Jan 2001 18:07:11 +0100


Chris Mason wrote:
>
> Hi guys,
>
> Just noticed the filemap_fdatasync code doesn't check the return value from
> writepage. Linus, would you take a patch that redirtied the page, puts it
> back onto the dirty list (at the tail), and unlocks the page when writepage
> returns 1?

It would be a lot more consistent if ->writepage always unlocks the page
(or starts the chain of events that eventually unlocks the page) even
when it fails.

> That would loop forever if the writepage func kept returning 1 though...I
> think that's what we want, unless someone like ramfs made a writepage func
> that always returned 1.

Even then it's ok. Without major surgery, those pages are going to loop
forever somewhere, it might as well be the inactive_dirty list. This is
going to mess up the mm balancing calculations, but of course only when
somebody is actually using ramfs. Maybe somebody will come up with a
tidy way of getting those pages entirely off the mm lists so they doing
just keep eating cpu cycles.

By the way, the whole concept of ramfs is really elegant - ramdisks are
just wrong, because all the ramdisk data in cache is in memory twice.
Solution: throw away the disk, keep the cache. Nice.

> For the reiserfs code, I'd like to be able to tell page_launder and
> filemap_fdatasync to try the page again later. reiserfs would clean and
> unlock the page if no io needs to be done at all.

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/