Skip to content

Commit 606066d

Browse files
committed
sprinkle VN_KNOTE()s
1 parent c598ad8 commit 606066d

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

sys/fs/smbfs/smbfs_io.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $NetBSD: smbfs_io.c,v 1.11 2003/02/25 10:14:29 jdolecek Exp $ */
1+
/* $NetBSD: smbfs_io.c,v 1.12 2003/02/25 10:33:19 jdolecek Exp $ */
22

33
/*
44
* Copyright (c) 2000-2001, Boris Popov
@@ -36,7 +36,7 @@
3636
*/
3737

3838
#include <sys/cdefs.h>
39-
__KERNEL_RCSID(0, "$NetBSD: smbfs_io.c,v 1.11 2003/02/25 10:14:29 jdolecek Exp $");
39+
__KERNEL_RCSID(0, "$NetBSD: smbfs_io.c,v 1.12 2003/02/25 10:33:19 jdolecek Exp $");
4040

4141
#include <sys/param.h>
4242
#include <sys/systm.h>
@@ -240,6 +240,8 @@ smbfs_writevnode(struct vnode *vp, struct uio *uiop,
240240
struct smb_cred scred;
241241
struct proc *p;
242242
int error = 0;
243+
int extended = 0;
244+
size_t resid = uiop->uio_resid;
243245

244246
/* vn types other than VREG unsupported */
245247
KASSERT(vp->v_type == VREG);
@@ -282,8 +284,12 @@ smbfs_writevnode(struct vnode *vp, struct uio *uiop,
282284
if (uiop->uio_offset > np->n_size) {
283285
np->n_size = uiop->uio_offset;
284286
uvm_vnp_setsize(vp, np->n_size);
287+
extended = 1;
285288
}
289+
286290
}
291+
if (resid > uiop->uio_resid)
292+
VN_KNOTE(vp, NOTE_WRITE | (extended ? NOTE_EXTEND : 0));
287293
return error;
288294
}
289295

sys/fs/smbfs/smbfs_vnops.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $NetBSD: smbfs_vnops.c,v 1.14 2003/02/25 09:09:32 jdolecek Exp $ */
1+
/* $NetBSD: smbfs_vnops.c,v 1.15 2003/02/25 10:33:19 jdolecek Exp $ */
22

33
/*-
44
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -71,7 +71,7 @@
7171
*/
7272

7373
#include <sys/cdefs.h>
74-
__KERNEL_RCSID(0, "$NetBSD: smbfs_vnops.c,v 1.14 2003/02/25 09:09:32 jdolecek Exp $");
74+
__KERNEL_RCSID(0, "$NetBSD: smbfs_vnops.c,v 1.15 2003/02/25 10:33:19 jdolecek Exp $");
7575

7676
#include <sys/param.h>
7777
#include <sys/systm.h>
@@ -497,6 +497,7 @@ smbfs_setattr(v)
497497
smbfs_attr_cacheremove(vp); /* invalidate cache */
498498
VOP_GETATTR(vp, vap, ap->a_cred, ap->a_p);
499499
np->n_mtime.tv_sec = vap->va_mtime.tv_sec;
500+
VN_KNOTE(vp, NOTE_ATTRIB);
500501
return error;
501502
}
502503
/*
@@ -587,6 +588,7 @@ smbfs_create(v)
587588

588589
out:
589590
PNBUF_PUT(cnp->cn_pnbuf);
591+
VN_KNOTE(dvp, NOTE_WRITE);
590592
vput(dvp);
591593
return (error);
592594

@@ -618,6 +620,8 @@ smbfs_remove(v)
618620
}
619621

620622
PNBUF_PUT(cnp->cn_pnbuf);
623+
VN_KNOTE(ap->a_vp, NOTE_DELETE);
624+
VN_KNOTE(ap->a_dvp, NOTE_WRITE);
621625
if (dvp == vp)
622626
vrele(vp);
623627
else
@@ -687,17 +691,21 @@ smbfs_rename(v)
687691
error = smbfs_smb_delete(VTOSMB(tvp), &scred);
688692
if (error)
689693
goto out;
694+
VN_KNOTE(tdvp, NOTE_WRITE);
695+
VN_KNOTE(tvp, NOTE_DELETE);
696+
cache_purge(tvp);
690697
}
691698
error = smbfs_smb_rename(VTOSMB(fvp), VTOSMB(tdvp),
692699
tcnp->cn_nameptr, tcnp->cn_namelen, &scred);
700+
VN_KNOTE(fdvp, NOTE_WRITE);
701+
VN_KNOTE(fvp, NOTE_RENAME);
693702
}
694703

695704
if (fvp->v_type == VDIR) {
696705
if (tvp != NULL && tvp->v_type == VDIR)
697706
cache_purge(tdvp);
698707
cache_purge(fdvp);
699708
}
700-
701709
out:
702710
smbfs_attr_cacheremove(fdvp);
703711
smbfs_attr_cacheremove(tdvp);
@@ -776,6 +784,7 @@ smbfs_mkdir(v)
776784

777785
out:
778786
PNBUF_PUT(cnp->cn_pnbuf);
787+
VN_KNOTE(dvp, NOTE_WRITE | NOTE_LINK);
779788
vput(dvp);
780789

781790
return (error);
@@ -814,6 +823,8 @@ smbfs_rmdir(v)
814823
PNBUF_PUT(cnp->cn_pnbuf);
815824
dnp->n_flag |= NMODIFIED;
816825
smbfs_attr_cacheremove(dvp);
826+
VN_KNOTE(dvp, NOTE_WRITE | NOTE_LINK);
827+
VN_KNOTE(vp, NOTE_DELETE);
817828
cache_purge(dvp);
818829
cache_purge(vp);
819830
vput(vp);

0 commit comments

Comments
 (0)