Author: rmacklem
Date: Fri Apr 21 00:17:47 2017
New Revision: 317236
URL: https://svnweb.freebsd.org/changeset/base/317236

Log:
  Fix the setting of atime for Linux client NFSv4 mounts.
  
  The FreeBSD NFSv4 server did not set the attribute bit for TimeAccess in
  the reply to an Open with exclusive_create, as required by the RFCs.
  (This is required since the FreeBSD NFS server stores the create_verifier
   in the va_atime attribute.)
  As such, the Linux NFSv4 client did not set the TimeAccess (atime) in
  the Setattr done in an RPC after the one with the Open/exclusive_create.
  This patch fixes the server to set the TimeAccess bit in the reply.
  
  I believe that storing the create_verifier in an extended attribute for
  file systems that support extended attributes might be a good idea,
  but I will wait for a discussion of this on the freebsd-fs@ email list
  before considering committing a patch to do this.
  
  Reported by:  j...@ks.uiuc.edu
  Suggested by: dfr
  MFC after:    2 weeks

Modified:
  head/sys/fs/nfsserver/nfs_nfsdport.c

Modified: head/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- head/sys/fs/nfsserver/nfs_nfsdport.c        Fri Apr 21 00:12:47 2017        
(r317235)
+++ head/sys/fs/nfsserver/nfs_nfsdport.c        Fri Apr 21 00:17:47 2017        
(r317236)
@@ -1436,7 +1436,9 @@ nfsvno_open(struct nfsrv_descript *nd, s
                                                vput(ndp->ni_vp);
                                                ndp->ni_vp = NULL;
                                                nd->nd_repstat = NFSERR_NOTSUPP;
-                                       }
+                                       } else
+                                               NFSSETBIT_ATTRBIT(attrbitp,
+                                                   NFSATTRBIT_TIMEACCESS);
                                } else {
                                        nfsrv_fixattr(nd, ndp->ni_vp, nvap,
                                            aclp, p, attrbitp, exp);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to