diff options
author | 2008-09-12 16:17:57 +0000 | |
---|---|---|
committer | 2008-09-12 16:17:57 +0000 | |
commit | 4e36679c8ad35ba6d6817265952cd8fa10e3d291 (patch) | |
tree | 53fd103e3ab737ea5b990fb464399af9686d0043 | |
parent | Don't split large commands into multiple commands on a 512-byte (diff) | |
download | wireguard-openbsd-4e36679c8ad35ba6d6817265952cd8fa10e3d291.tar.xz wireguard-openbsd-4e36679c8ad35ba6d6817265952cd8fa10e3d291.zip |
provide a NOTE_TRUNCATED kq hint in nfs_setattr() if the file
shrinks, same thing as UFS does.
ok/pointers pedro@
ok blambert@
-rw-r--r-- | sys/nfs/nfs_vnops.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c index 927411890b6..c3def3d6dbb 100644 --- a/sys/nfs/nfs_vnops.c +++ b/sys/nfs/nfs_vnops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_vnops.c,v 1.102 2008/08/21 01:17:39 pedro Exp $ */ +/* $OpenBSD: nfs_vnops.c,v 1.103 2008/09/12 16:17:57 thib Exp $ */ /* $NetBSD: nfs_vnops.c,v 1.62.4.1 1996/07/08 20:26:52 jtc Exp $ */ /* @@ -528,6 +528,7 @@ nfs_setattr(v) struct vnode *vp = ap->a_vp; struct nfsnode *np = VTONFS(vp); struct vattr *vap = ap->a_vap; + int hint = NOTE_ATTRIB; int error = 0; u_quad_t tsize = 0; @@ -592,7 +593,10 @@ nfs_setattr(v) uvm_vnp_setsize(vp, np->n_size); } - VN_KNOTE(vp, NOTE_ATTRIB); /* XXX setattrrpc? */ + if (vap->va_size != VNOVAL && vap->va_size < tsize) + hint |= NOTE_TRUNCATE; + + VN_KNOTE(vp, hint); /* XXX setattrrpc? */ return (error); } |