Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Jan 96 12:59:51 +0900
From:      Mihoko Tanaka <m_tanaka@pa.yokogawa.co.jp>
To:        terry@lambert.org
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: NFS trouble ?
Message-ID:  <9601250359.AA05302@cabbage.pa.yokogawa.co.jp>
In-Reply-To: Terry Lambert's message of Tue, 23 Jan 1996 10:51:12 -0700 (MST) <199601231751.KAA17851@phaeton.artisoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help

   >>> My friend is developping a program which seek a file and read it.
   >>> Her program seeks a file with a wrong offset (i.e the offset size is larger
   >>> than the file size). It occurs panic.
   >>> When a file is on a local disk, nothing happens.
   >>> But when a file is on NFS, it occurs panic everytime.
   >>
   >>Does it panic the NFS client or the NFS server?

The NFS client does.

   >>>      off_t lseek(int fd, off_t offset, int whence)
   >>> 
   >>> off_t is defined in /usr/include/sys/types.h : 
   >>>     typedef long long     off_t
   >>> 
   >>> then
   >>> 	off_t offset = 0x90000000 > 0
   >>
   >>I am suspiscious of > 31 bit offset values over NFS.  I suspect that
   >>there would be problems, since I believe the protocol limit is 32 bits
   >>with one bit for the sign bit for the return of error codes.
   >>
   >>I believe this is your problem.

Yes. I think so.
But I guess that the kernel must not panic even if a user program do
anything.
      
   >>> I guess that lseek should return a error (EINVAL) when 'offset' is
   >>> larger then the file size . 
   >>> What do you think ?
   >>
   >>No.  A seek to a valid location not in the file is perfectly legal,
   >>even when followed by a read or a write (the first should return an
   >>EOF error, the second should cause the file to be sparse).

You are right.
I'm sorry I have taken it wrong.

--
Mihoko Tanaka 
<m_tanaka@pa.yokogawa.co.jp>     
	



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9601250359.AA05302>