summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2004-01-10 03:45:30 +0000
committertjr <tjr@FreeBSD.org>2004-01-10 03:45:30 +0000
commitc2134f4017f9fbae7b1bb8b16b2b7cfc250646c3 (patch)
treeeb449eedb0e05a79903048760bd435c16169cc66
parente80a89c101409d62441720889f518679dcc81c29 (diff)
downloadFreeBSD-src-c2134f4017f9fbae7b1bb8b16b2b7cfc250646c3.zip
FreeBSD-src-c2134f4017f9fbae7b1bb8b16b2b7cfc250646c3.tar.gz
Restore closing of SMB find handle in smbfs_close().
-rw-r--r--sys/fs/smbfs/smbfs_vnops.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/fs/smbfs/smbfs_vnops.c b/sys/fs/smbfs/smbfs_vnops.c
index 928a77a..e9fc5a8 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;
OpenPOWER on IntegriCloud