summaryrefslogtreecommitdiff
path: root/sys/nfs/nfs_vnops.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/nfs/nfs_vnops.c')
-rw-r--r--sys/nfs/nfs_vnops.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c
index b5548e751576..0066b77b13b6 100644
--- a/sys/nfs/nfs_vnops.c
+++ b/sys/nfs/nfs_vnops.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* From: @(#)nfs_vnops.c 7.60 (Berkeley) 5/24/91
- * $Id: nfs_vnops.c,v 1.7 1994/01/31 23:40:50 martin Exp $
+ * $Id: nfs_vnops.c,v 1.8 1994/06/14 03:41:10 davidg Exp $
*/
/*
@@ -278,9 +278,19 @@ nfs_open(vp, mode, cred, p)
register enum vtype vtyp;
vtyp = vp->v_type;
- if (vtyp == VREG || vtyp == VDIR || vtyp == VLNK)
+ if (vtyp == VREG || vtyp == VDIR || vtyp == VLNK) {
+ struct nfsnode *np;
+ struct vattr vattr;
+ np = VTONFS(vp);
+ if (nfs_dogetattr(vp, &vattr, cred, 1, p) == 0) {
+ if (np->n_mtime != vattr.va_mtime.tv_sec) {
+ np->n_direofoffset = 0;
+ vinvalbuf(vp, TRUE);
+ np->n_mtime = vattr.va_mtime.tv_sec;
+ }
+ }
return (0);
- else
+ } else
return (EACCES);
}