|
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 $ */ |
2 | 2 |
|
3 | 3 | /*- |
4 | 4 | * Copyright (c) 2003 The NetBSD Foundation, Inc. |
|
71 | 71 | */ |
72 | 72 |
|
73 | 73 | #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 $"); |
75 | 75 |
|
76 | 76 | #include <sys/param.h> |
77 | 77 | #include <sys/systm.h> |
@@ -497,6 +497,7 @@ smbfs_setattr(v) |
497 | 497 | smbfs_attr_cacheremove(vp); /* invalidate cache */ |
498 | 498 | VOP_GETATTR(vp, vap, ap->a_cred, ap->a_p); |
499 | 499 | np->n_mtime.tv_sec = vap->va_mtime.tv_sec; |
| 500 | + VN_KNOTE(vp, NOTE_ATTRIB); |
500 | 501 | return error; |
501 | 502 | } |
502 | 503 | /* |
@@ -587,6 +588,7 @@ smbfs_create(v) |
587 | 588 |
|
588 | 589 | out: |
589 | 590 | PNBUF_PUT(cnp->cn_pnbuf); |
| 591 | + VN_KNOTE(dvp, NOTE_WRITE); |
590 | 592 | vput(dvp); |
591 | 593 | return (error); |
592 | 594 |
|
@@ -618,6 +620,8 @@ smbfs_remove(v) |
618 | 620 | } |
619 | 621 |
|
620 | 622 | PNBUF_PUT(cnp->cn_pnbuf); |
| 623 | + VN_KNOTE(ap->a_vp, NOTE_DELETE); |
| 624 | + VN_KNOTE(ap->a_dvp, NOTE_WRITE); |
621 | 625 | if (dvp == vp) |
622 | 626 | vrele(vp); |
623 | 627 | else |
@@ -687,17 +691,21 @@ smbfs_rename(v) |
687 | 691 | error = smbfs_smb_delete(VTOSMB(tvp), &scred); |
688 | 692 | if (error) |
689 | 693 | goto out; |
| 694 | + VN_KNOTE(tdvp, NOTE_WRITE); |
| 695 | + VN_KNOTE(tvp, NOTE_DELETE); |
| 696 | + cache_purge(tvp); |
690 | 697 | } |
691 | 698 | error = smbfs_smb_rename(VTOSMB(fvp), VTOSMB(tdvp), |
692 | 699 | tcnp->cn_nameptr, tcnp->cn_namelen, &scred); |
| 700 | + VN_KNOTE(fdvp, NOTE_WRITE); |
| 701 | + VN_KNOTE(fvp, NOTE_RENAME); |
693 | 702 | } |
694 | 703 |
|
695 | 704 | if (fvp->v_type == VDIR) { |
696 | 705 | if (tvp != NULL && tvp->v_type == VDIR) |
697 | 706 | cache_purge(tdvp); |
698 | 707 | cache_purge(fdvp); |
699 | 708 | } |
700 | | - |
701 | 709 | out: |
702 | 710 | smbfs_attr_cacheremove(fdvp); |
703 | 711 | smbfs_attr_cacheremove(tdvp); |
@@ -776,6 +784,7 @@ smbfs_mkdir(v) |
776 | 784 |
|
777 | 785 | out: |
778 | 786 | PNBUF_PUT(cnp->cn_pnbuf); |
| 787 | + VN_KNOTE(dvp, NOTE_WRITE | NOTE_LINK); |
779 | 788 | vput(dvp); |
780 | 789 |
|
781 | 790 | return (error); |
@@ -814,6 +823,8 @@ smbfs_rmdir(v) |
814 | 823 | PNBUF_PUT(cnp->cn_pnbuf); |
815 | 824 | dnp->n_flag |= NMODIFIED; |
816 | 825 | smbfs_attr_cacheremove(dvp); |
| 826 | + VN_KNOTE(dvp, NOTE_WRITE | NOTE_LINK); |
| 827 | + VN_KNOTE(vp, NOTE_DELETE); |
817 | 828 | cache_purge(dvp); |
818 | 829 | cache_purge(vp); |
819 | 830 | vput(vp); |
|
0 commit comments