svn commit: r317236 - head/sys/fs/nfsserver

Rick Macklem rmacklem at FreeBSD.org
Fri Apr 21 00:17:48 UTC 2017


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:	jim at 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);


More information about the svn-src-head mailing list