aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/nfsclient/nfs_clsubs.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/nfsclient/nfs_clsubs.c')
-rw-r--r--sys/fs/nfsclient/nfs_clsubs.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/sys/fs/nfsclient/nfs_clsubs.c b/sys/fs/nfsclient/nfs_clsubs.c
index 80ab979d22d7..ae9fa51947cc 100644
--- a/sys/fs/nfsclient/nfs_clsubs.c
+++ b/sys/fs/nfsclient/nfs_clsubs.c
@@ -54,6 +54,7 @@
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/malloc.h>
+#include <sys/stdarg.h>
#include <sys/syscall.h>
#include <sys/sysproto.h>
#include <sys/taskqueue.h>
@@ -71,12 +72,6 @@
#include <netinet/in.h>
-/*
- * Note that stdarg.h and the ANSI style va_start macro is used for both
- * ANSI and traditional C compilers.
- */
-#include <machine/stdarg.h>
-
extern struct mtx ncl_iod_mutex;
extern enum nfsiod_state ncl_iodwant[NFS_MAXASYNCDAEMON];
extern struct nfsmount *ncl_iodmount[NFS_MAXASYNCDAEMON];
@@ -188,7 +183,7 @@ ncl_getattrcache(struct vnode *vp, struct vattr *vaper)
np = VTONFS(vp);
vap = &np->n_vattr.na_vattr;
nmp = VFSTONFS(vp->v_mount);
- mustflush = nfscl_mustflush(vp); /* must be before mtx_lock() */
+ mustflush = nfscl_nodeleg(vp, 0); /* must be before mtx_lock() */
NFSLOCKNODE(np);
/* XXX n_mtime doesn't seem to be updated on a miss-and-reload */
timeo = (time_second - np->n_mtime.tv_sec) / 10;
@@ -221,8 +216,8 @@ ncl_getattrcache(struct vnode *vp, struct vattr *vaper)
(time_second - np->n_attrstamp), timeo);
#endif
- if ((time_second - np->n_attrstamp) >= timeo &&
- (mustflush != 0 || np->n_attrstamp == 0)) {
+ if (mustflush != 0 && (np->n_attrstamp == 0 ||
+ time_second - np->n_attrstamp >= timeo)) {
nfsstatsv1.attrcache_misses++;
NFSUNLOCKNODE(np);
KDTRACE_NFS_ATTRCACHE_GET_MISS(vp);