[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-nfsv4
Subject:    Cthon-04 errors
From:       bfields () fieldses ! org (J !  Bruce Fields)
Date:       2005-04-13 22:09:56
Message-ID: 20050414020953.GB21552 () fieldses ! org
[Download RAW message or body]

On Wed, Apr 13, 2005 at 06:55:06PM -0700, Marc Eshel wrote:
> If we are on the subject of cthon-04 let me add a problem that I saw while 
> testing nfsv4 locks.
> - running on linux 2.6.12-rc2-CITI_NFS4_ALL-1
> - test 7.1 gets EIO error for a read operation which got translated from 
> EBADF on the server side.
> Tracing the problem it turns out that if the underling file system doesn't 
> support sendfile(), which is true in my case, than vfs_readv() checks for 
> FMODE_READ and returns EBADF if it is not on. (see inclused code 
> segments). I think that it is a problem in the nfsv4 code that is doing a 
> read operation without  FMOD_READ being set.

Interesting.  So an open determines a (client, open_owner, inode) tuple
(where the open_owner is a client-provided string identifying the
"opener"--process id or whatever).  The first time we see such a tuple
we do a vfs open and save the resulting struct file.  Subsequent opens
and open_downgrades may change the access (allow read, allow write,
etc.), but we keep using the same struct file.

That may mean we end up, for example, doing reads with a struct file
originally opened for write only.  I'd wondered whether that could be a
problem.  I guess so....  I'll work on a patch.

--b.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic