svn commit: r208432 - stable/8/sys/fs/nfsclient
Rick Macklem
rmacklem at FreeBSD.org
Sun May 23 02:55:59 UTC 2010
Author: rmacklem
Date: Sun May 23 02:55:59 2010
New Revision: 208432
URL: http://svn.freebsd.org/changeset/base/208432
Log:
MFC: r208254
Allow the experimental NFSv4 client to use cached attributes
when a write delegation is held. Also, add a missing
mtx_unlock() call for the ACL debugging code.
Modified:
stable/8/sys/fs/nfsclient/nfs_clsubs.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)
stable/8/sys/geom/sched/ (props changed)
Modified: stable/8/sys/fs/nfsclient/nfs_clsubs.c
==============================================================================
--- stable/8/sys/fs/nfsclient/nfs_clsubs.c Sun May 23 02:40:04 2010 (r208431)
+++ stable/8/sys/fs/nfsclient/nfs_clsubs.c Sun May 23 02:55:59 2010 (r208432)
@@ -188,11 +188,12 @@ ncl_getattrcache(struct vnode *vp, struc
struct nfsnode *np;
struct vattr *vap;
struct nfsmount *nmp;
- int timeo;
+ int timeo, mustflush;
np = VTONFS(vp);
vap = &np->n_vattr.na_vattr;
nmp = VFSTONFS(vp->v_mount);
+ mustflush = nfscl_mustflush(vp); /* must be before mtx_lock() */
#ifdef NFS_ACDEBUG
mtx_lock(&Giant); /* ncl_printf() */
#endif
@@ -228,9 +229,13 @@ ncl_getattrcache(struct vnode *vp, struc
(time_second - np->n_attrstamp), timeo);
#endif
- if ((time_second - np->n_attrstamp) >= timeo) {
+ if ((time_second - np->n_attrstamp) >= timeo &&
+ mustflush != 0) {
newnfsstats.attrcache_misses++;
mtx_unlock(&np->n_mtx);
+#ifdef NFS_ACDEBUG
+ mtx_unlock(&Giant); /* ncl_printf() */
+#endif
return( ENOENT);
}
newnfsstats.attrcache_hits++;
More information about the svn-src-stable
mailing list