Re: FW: Linux NFS bugs?

Bill Hawes (whawes@transmeta.com)
Fri, 25 Sep 1998 08:19:48 -0700


Rodney Van Meter wrote:

> > I sent this off to a Olaf, who pointed me at Hawes, who didn't respond.
> >
> > Maybe it's not worth a response, I dunno :-). If it helps, great. If not,
> > no skin off my nose.

Hi Rodney,

I got your message, but as I've been busy on other things I didn't have time to
look into the questions you asked.

But from memory on working on the NFS code, there was an extra increment to the
page->count that I removed, making it unnecessary to call free_page on one
branch of the conditional.

Note that free_page just decrements the page count, and doesn't actually free it
until the count goes to 0.

Regards,
Bill

> > > -----Original Message-----
> > > From: Rodney Van Meter
> > > Sent: Wednesday, September 16, 1998 1:06 PM
> > > To: 'okir@monad.swb.de'
> > > Subject: Linux NFS bugs?
> > >
> > > I'm just getting started on understanding the NFS code and the kernel
> > > in general, so don't be surprised if this is naive. Also, if you're no
> > > longer
> > > the right person to send this to, let me know who is.
> > >
> > > However, it looks like there might be a bug or at least inconsistency
> > > in the NFS read code, wrt calling free_page().
> > >
> > > In 2.0.34, nfs_readpage() (fs/nfs/bio.c), free_page(address) is called
> > > unconditionally, once, regardless of whether do_read_nfs_async() or
> > > do_read_nfs_sync() (or both) are called.
> > >
> > > In 2.1.121, nfs_readpage() (fs/nfs/read.c) calls
> > > free_page(page_address(page)) *only* if nfs_readpage_sync() is called,
> > > and then unconditionally.
> > >
> > > I don't understand the uses of free_page(), but if it's really freeing
> > > the page, shouldn't it be called only if the page isn't in use,
> > > i.e. the read failed for some reason?
> > >
> > > Or, at least, if the 2.0.34 code is correct, shouldn't it also be
> > > called in 2.1.121 when nfs_readpage_async completes correctly?
> > >
> > > Just trying to help and to understand the code,
> > >
> > > --Rod
> > >
> >

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