svn commit: r317914 - stable/10/sys/fs/nfsserver

Rick Macklem rmacklem at FreeBSD.org
Sun May 7 19:57:46 UTC 2017


Author: rmacklem
Date: Sun May  7 19:57:45 2017
New Revision: 317914
URL: https://svnweb.freebsd.org/changeset/base/317914

Log:
  MFC: r317236
  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.

Modified:
  stable/10/sys/fs/nfsserver/nfs_nfsdport.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- stable/10/sys/fs/nfsserver/nfs_nfsdport.c	Sun May  7 19:52:56 2017	(r317913)
+++ stable/10/sys/fs/nfsserver/nfs_nfsdport.c	Sun May  7 19:57:45 2017	(r317914)
@@ -1431,7 +1431,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);


More information about the svn-src-all mailing list