Linux NFS development
 help / color / mirror / Atom feed
From: Diego Moreno <Diego.Moreno-Lazaro@bull.net>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: linux-nfs@vger.kernel.org, nfsv4@linux-nfs.org
Subject: Re: Option noac not working correctly?
Date: Wed, 18 Mar 2009 17:42:09 +0100	[thread overview]
Message-ID: <49C12461.8040001@bull.net> (raw)
In-Reply-To: <1237389003.7275.9.camel@heimdal.trondhjem.org>



Trond Myklebust wrote:
> 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

Thanks for your quick reply Trond. I've seen the only way to pass my 
test is using (for kernel 2.6.29-rc8): -olookupcache=positive,noac. If I 
use -olookupcache=positive or -olookupcache=all or 
-olookupcache=all,noac my test doesn't pass.

BTW, is there any way of passing this test for a kernel like 2.6.27 
(there is no lookupcache mount option). In kernels like 2.6.19 or 2.6.20 
I think I passed my test just using noac option. These kernels where the 
first kernels with the patch (commit 
b0b539739fe9b7d75002412a787cfdf4efddbc33) treating the special case of 
nfsi->attrtimeo==0. That means 'noac' or/and actimeo=0 mount options.

Thanks,

Diego

  reply	other threads:[~2009-03-18 16:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-18 14:36 Option noac not working correctly? Diego Moreno
2009-03-18 15:10 ` Trond Myklebust
2009-03-18 16:42   ` Diego Moreno [this message]
2009-03-18 21:34     ` Trond Myklebust

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49C12461.8040001@bull.net \
    --to=diego.moreno-lazaro@bull.net \
    --cc=linux-nfs@vger.kernel.org \
    --cc=nfsv4@linux-nfs.org \
    --cc=trond.myklebust@fys.uio.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox