svn commit: r210711 - stable/8/sys/fs/nfsclient
Rick Macklem
rmacklem at FreeBSD.org
Sun Aug 1 02:11:13 UTC 2010
Author: rmacklem
Date: Sun Aug 1 02:11:12 2010
New Revision: 210711
URL: http://svn.freebsd.org/changeset/base/210711
Log:
MFC: r210034
For the experimental NFSv4 client, make sure that attributes that
predate the issue of a delegation are not cached once the delegation
is held. This is necessary, since cached attributes remain valid
while the delegation is held.
Modified:
stable/8/sys/fs/nfsclient/nfs_clrpcops.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/fs/nfsclient/nfs_clrpcops.c
==============================================================================
--- stable/8/sys/fs/nfsclient/nfs_clrpcops.c Sun Aug 1 01:39:06 2010 (r210710)
+++ stable/8/sys/fs/nfsclient/nfs_clrpcops.c Sun Aug 1 02:11:12 2010 (r210711)
@@ -270,6 +270,14 @@ else printf(" fhl=0\n");
#else
NFSLOCKNODE(np);
np->n_flag &= ~NDELEGMOD;
+ /*
+ * Invalidate the attribute cache, so that
+ * attributes that pre-date the issue of a
+ * delegation are not cached, since the
+ * cached attributes will remain valid while
+ * the delegation is held.
+ */
+ NFSINVALATTRCACHE(np);
NFSUNLOCKNODE(np);
#endif
(void) nfscl_deleg(nmp->nm_mountp,
@@ -1731,6 +1739,12 @@ nfsrpc_create(vnode_t dvp, char *name, i
error = nfsrpc_createv4(dvp, name, namelen, vap, cverf, fmode,
owp, &dp, cred, p, dnap, nnap, nfhpp, attrflagp, dattrflagp,
dstuff, &unlocked);
+ /*
+ * There is no need to invalidate cached attributes here,
+ * since new post-delegation issue attributes are always
+ * returned by nfsrpc_createv4() and these will update the
+ * attribute cache.
+ */
if (dp != NULL)
(void) nfscl_deleg(nmp->nm_mountp, owp->nfsow_clp,
(*nfhpp)->nfh_fh, (*nfhpp)->nfh_len, cred, p, &dp);
More information about the svn-src-stable-8
mailing list