Subject: Re: nfs servers and 5 minute VOP_READ's
To: Frank van der Linden <frank@wins.uva.nl>
From: Bill Studenmund <wrstuden@nas.nasa.gov>
List: tech-kern
Date: 04/07/1999 18:05:12
On Wed, 17 Mar 1999, Frank van der Linden wrote:

> On Tue, Mar 16, 1999 at 03:18:10PM -0800, Bill Studenmund wrote:
> > I think a better thing to do would be something like
> > 
> > 	error = VOP_READ/VOP_WRITE( ..., IO_NODELOCKED | IO_NDELAY, ...)
> > 	if (error == EAGAIN) {
> > 		if (v3)
> > 			error = NFSERR_TRYAGAIN;
> > 		else {
> > 			error = drop me;
> > 		}
> > 	}
> > 
> > I'm not sure what "drop me" would consist of though...
> 
> You could just not respond, but this will trigger the usual timeout
> mechanisms on the client side. Possible "NFS server not responding"
> messages, but what's worse, "soft" mounts will have the read() or
> write() system calls fail.

I realize this is kinda a blast from the past, but I'd like to get a
better idea of what "drop me" should be. I don't want to send any error
back to the client, and I'd like to not leave the request in the cache. Or
if the request is in the rpc cache, I'd like to mark it "dropped, try
again" so that subsequent client requests will generate VOP calls to see
if the read or write can go forward now.

Suggestions? Looking at the nfs server code made my head spin. :-)

Take care,

Bill