> Why the client always sends a second Tread request ?
> If the Rread returned 281/8192 bytes and the msize is > 8192 it should 
> be clear that there is no other data to read.

As Charles pointed out, what you describe is in fact
the behavior of fread(3) (from stdio) but is not the
behavior of the underlying read(2) system call,
even on Unix.  An EOD flag can't work without 
either (a) changing the system call interface or
(b) having some kind of lease so that the EOD can
be invalidated when more data comes in between
the first read and the second read (which you 
propose the operating system should answer without
reference to the 9P server).

The extra fids you see when mounting under Linux
don't grow without bound.  They are being stored
in the Linux vnode cache, and if you build up enough
of them eventually you will start seeing clunks even
before unmounting the file system.  I am sure Eric 
or Ron will chime in with some incantation to disable
this caching in some way.  Plan 9 does not cache 
directory tree information, so you don't see these extra
fids on Plan 9.

Russ

Reply via email to