Messages in this thread | | | Date | Fri, 25 Sep 1998 08:19:48 -0700 | From | Bill Hawes <> | Subject | Re: FW: Linux NFS bugs? |
| |
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/
| |