Re: Option noac not working correctly?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2009-03-18 at 15:36 +0100, Diego Moreno wrote:
> Hello everyone,
> 
> I've been testing the noac mount option in several kernels (2.6.27.10, 
> 2.6.29-rc8) for NFSv3 and NFSv4. The next commands do not work properly:
> 
> rm -f /export/B; ls -l /tmp/nfs_client_tcp/B ; uname -a > /export/B; ls 
> -l /tmp/nfs_client_tcp/B
> 
> Result is usually:
> 
> ls: /tmp/nfs_client_tcp/B: No such file or directory
> ls: /tmp/nfs_client_tcp/B: No such file or directory
> 
> Actually the result should be always:
> 
> ls: /tmp/nfs_client_tcp/B: No such file or directory
> -rw-r--r-- 1 root root 89 Mar 18 14:02 /tmp/nfs_client_tcp/B
> 
> Network traces show me that client is not making any lookup in the 
> server for the second 'ls'. A client with noac option should always make 
> a lookup on server, isn't it?
> 
> My /etc/exports file:
> 
> /export  *(rw,fsid=0,insecure,no_subtree_check)
> 
> Relevant information from cat /proc/mounts:
> 
> pwrd:/ /tmp/nfs_client_tcp nfs4 
> rw,sync,vers=4,rsize=1048576,wsize=1048576,namlen=255,acregmin=0,acregmax=0,acdirmin=0,acdirmax=0,hard,nointr,noac,proto=tcp,timeo=600,retrans=2,sec=sys
> 
> NFS debug trace of the second ls command:
> 
> NFS call  access
> NFS: nfs_update_inode(0:17/2 ct=2 info=0x6)
> NFS reply access: 0
> NFS: permission(0:17/2), mask=0x1, res=0
> NFS: revalidating (0:17/2)
> NFS call  getattr
> NFS reply getattr: 0
> NFS: nfs_update_inode(0:17/2 ct=2 info=0x6)
> NFS: nfs3_forget_cached_acls(0:17/2)
> NFS: (0:17/2) revalidation complete
> NFS: nfs_lookup_revalidate(/B) is valid
> NFS: dentry_delete(/B, 8)
> 
> Is there anything I'm not doing well? Is this a known bug for the last 
> kernel version? Thanks,

The above behaviour is perfectly correct _if_ the mtime
on /tmp/nfs_client_tcp doesn't change between your 'rm' and the creation
of B. Given that most Linux filesystems have poor (1 second) resolution
on mtime, then for it not to change in the above test is an extremely
likely event.

Note that there is a better option for controlling lookup behaviour in
newer kernels: -olookupcache=all or -olookupcache=positive should both
cause your test above to pass irrespective of whether or not mtime
changed.

Trond

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux