diff options
| author | Tim J. Robbins <tjr@FreeBSD.org> | 2004-01-10 03:45:30 +0000 |
|---|---|---|
| committer | Tim J. Robbins <tjr@FreeBSD.org> | 2004-01-10 03:45:30 +0000 |
| commit | 835fb616185600d44b7cd16e5112c6b996d698eb (patch) | |
| tree | eb449eedb0e05a79903048760bd435c16169cc66 | |
| parent | e2297e59c8cc43eff03abd2894083b866f736502 (diff) | |
Notes
| -rw-r--r-- | sys/fs/smbfs/smbfs_vnops.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/fs/smbfs/smbfs_vnops.c b/sys/fs/smbfs/smbfs_vnops.c index 928a77a5bcd3..e9fc5a8cfeed 100644 --- a/sys/fs/smbfs/smbfs_vnops.c +++ b/sys/fs/smbfs/smbfs_vnops.c @@ -241,6 +241,8 @@ smbfs_close(ap) { struct vnode *vp = ap->a_vp; struct thread *td = ap->a_td; + struct smbnode *np = VTOSMB(vp); + struct smb_cred scred; int dolock; VI_LOCK(vp); @@ -249,7 +251,12 @@ smbfs_close(ap) vn_lock(vp, LK_EXCLUSIVE | LK_RETRY | LK_INTERLOCK, td); else VI_UNLOCK(vp); - /* Nothing. */ + if (vp->v_type == VDIR && (np->n_flag & NOPEN) != 0 && + np->n_dirseq != NULL) { + smb_makescred(&scred, td, ap->a_cred); + smbfs_findclose(np->n_dirseq, &scred); + np->n_dirseq = NULL; + } if (dolock) VOP_UNLOCK(vp, 0, td); return 0; |
