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 /sys/fs/smbfs | |
parent | e2297e59c8cc43eff03abd2894083b866f736502 (diff) | |
download | src-835fb616185600d44b7cd16e5112c6b996d698eb.tar.gz src-835fb616185600d44b7cd16e5112c6b996d698eb.zip |
Restore closing of SMB find handle in smbfs_close().
Notes
Notes:
svn path=/head/; revision=124326
Diffstat (limited to 'sys/fs/smbfs')
-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; |