summaryrefslogtreecommitdiffstats
path: root/sys/fs/smbfs/smbfs_subr.c
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2002-12-13 10:15:01 +0000
committertjr <tjr@FreeBSD.org>2002-12-13 10:15:01 +0000
commit99f5994bb49ce0f6ac7f141db1b8806a6dd4a164 (patch)
treed6829a6b64cab3c4fd5bcf0cfade2c79d258fadd /sys/fs/smbfs/smbfs_subr.c
parent0d70b124724057274d505584b615ff6d73891ac7 (diff)
downloadFreeBSD-src-99f5994bb49ce0f6ac7f141db1b8806a6dd4a164.zip
FreeBSD-src-99f5994bb49ce0f6ac7f141db1b8806a6dd4a164.tar.gz
Store a reference to the parent directory's vnode in struct smbnode,
not to the parent's smbnode, which may be freed during the lifetime of the child if the mount is forcibly unmounted. umount -f should now work properly (ie. not panic) on smbfs mounts.
Diffstat (limited to 'sys/fs/smbfs/smbfs_subr.c')
-rw-r--r--sys/fs/smbfs/smbfs_subr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/fs/smbfs/smbfs_subr.c b/sys/fs/smbfs/smbfs_subr.c
index 8012c0b..16e4bf2 100644
--- a/sys/fs/smbfs/smbfs_subr.c
+++ b/sys/fs/smbfs/smbfs_subr.c
@@ -270,7 +270,7 @@ smb_fphelp(struct mbchain *mbp, struct smb_vc *vcp, struct smbnode *np,
return ENAMETOOLONG;
}
*npp++ = np;
- np = np->n_parent;
+ np = VTOSMB(np->n_parent);
}
/* if (i == 0)
return smb_put_dmem(mbp, vcp, "\\", 2, caseopt);*/
OpenPOWER on IntegriCloud