Re: innd mmap bug in 2.4.0-test12

Daniel Phillips
2000-12-28T15:36:30Z

Linus Torvalds wrote:
>
> On Wed, 27 Dec 2000, Philipp Rumpf wrote:
>
> > On Wed, Dec 27, 2000 at 03:41:04PM -0800, Linus Torvalds wrote:
> > > It must be wrong.
> > >
> > > If we have a dirty page on the LRU lists, that page _must_ have a mapping.
> >
> > What about pages with a mapping but without a writepage function ? or pages
> > whose writepage function fails ? The current code seems to simply put the
> > page onto the active list in that case, which seems just as wrong to me.
>
> ramfs. It doesn't have a writepage() function, as there is no backing
> store.
>
> > > The bug is somewhere else, and your patch is just papering it over. We
> > > should not have a page without a mapping on the LRU lists in the first
> > > place, except if the page has anonymous buffers (and such a page cannot
> >
> > So is there any legal reason we could ever get to page_active ? Removing
> > that code (or replacing it with BUG()) certainly would make page_launder
> > more readable.
>
> Apart from the "we have no backing store", there is no legal reason to put
> it back on the active list that I can see.

It's logical that PageDirty should never be get for ramfs, and a ramfs
page should never have buffers on it. With this and Chris's anon_space
mapping can we replace the check for null ->writepage with BUG? With
the anon_space mapping we should be able to do the same ford for
->mapping.

Though these things aren't strictly bugs, having to check multiple paths
for everything is slowing us down in picking off the fluff.

--
Daniel