Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 May 2017 20:32:07 +0000 (UTC)
From:      Rick Macklem <rmacklem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r317918 - stable/9/sys/fs/nfsserver
Message-ID:  <201705072032.v47KW75P029600@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rmacklem
Date: Sun May  7 20:32:07 2017
New Revision: 317918
URL: https://svnweb.freebsd.org/changeset/base/317918

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/9/sys/fs/nfsserver/nfs_nfsdport.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/fs/   (props changed)

Modified: stable/9/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- stable/9/sys/fs/nfsserver/nfs_nfsdport.c	Sun May  7 20:21:59 2017	(r317917)
+++ stable/9/sys/fs/nfsserver/nfs_nfsdport.c	Sun May  7 20:32:07 2017	(r317918)
@@ -1422,7 +1422,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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705072032.v47KW75P029600>