Avishay Traeger wrote:
On Wed, 2006-05-17 at 17:44 -0400, Xin Zhao wrote:
Thank you for your care. What I am trying to do is to rewrite NFS in
the virtual machine environment so that network communication can be
replaced with inter-VM communication.
But after I remove the original rpc stuff, I ran into some strange
problem, including this one. Interesting thing is that I noticed that
even with standard NFS implementation, it is still possible that
nfsd_read() return resp->count to be 0. At this time, eof is also
equal to 1. This seems to be right since NFSD already reach the end of
the file. But question is since 0 byte is read this time, NFS should
detect EOF in previous read. Why need one more read?
Xin
How are you reading the file? Some programs (I believe 'cat' is one of
them) will read a file until 0 is returned. Try writing a small C
program to read a file until EOF and see if the behavior changes.
Returning 0 from read() is only situation when you can be sure you are at the
end of file. If you get short read(), it may be short due to EOF, but it may be
short also because some error was hit - EIO and EFAULT are two which can occur
almost always. And only next read will either return that error (or some other
error, or success if error condition disappeared meanwhile), or zero if it is
really EOF.
Petr
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]