summaryrefslogtreecommitdiffstats
path: root/sys/fs/nullfs/null_vnops.c
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2015-12-31 22:55:02 +0000
committerdim <dim@FreeBSD.org>2015-12-31 22:55:02 +0000
commitbc8f4c6766d9b42a3b5bc686c68cd43e8044462c (patch)
tree34b4a25c4bc3b0ad56cf20133da5eec165babec9 /sys/fs/nullfs/null_vnops.c
parent5e96169da3835c4e7ba0d43cbe01f0d7b36f67b3 (diff)
parent64f2c44ad84c0333d3cdc811e04bf59d76f1ef26 (diff)
downloadFreeBSD-src-bc8f4c6766d9b42a3b5bc686c68cd43e8044462c.zip
FreeBSD-src-bc8f4c6766d9b42a3b5bc686c68cd43e8044462c.tar.gz
Merge ^/head r292951 through r293015.
Diffstat (limited to 'sys/fs/nullfs/null_vnops.c')
-rw-r--r--sys/fs/nullfs/null_vnops.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c
index 4762a3c..72b884f 100644
--- a/sys/fs/nullfs/null_vnops.c
+++ b/sys/fs/nullfs/null_vnops.c
@@ -568,14 +568,16 @@ static int
null_remove(struct vop_remove_args *ap)
{
int retval, vreleit;
- struct vnode *lvp;
+ struct vnode *lvp, *vp;
- if (vrefcnt(ap->a_vp) > 1) {
- lvp = NULLVPTOLOWERVP(ap->a_vp);
+ vp = ap->a_vp;
+ if (vrefcnt(vp) > 1) {
+ lvp = NULLVPTOLOWERVP(vp);
VREF(lvp);
vreleit = 1;
} else
vreleit = 0;
+ VTONULL(vp)->null_flags |= NULLV_DROP;
retval = null_bypass(&ap->a_gen);
if (vreleit != 0)
vrele(lvp);
OpenPOWER on IntegriCloud