diff options
author | kib <kib@FreeBSD.org> | 2008-11-26 13:41:15 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2008-11-26 13:41:15 +0000 |
commit | 5fad450f04bcc9d8d9f17c31d616f9ef96907b6b (patch) | |
tree | 405e1649f9de69735e858f9ffe0bb0b30d2cc57f /sys/fs | |
parent | 9dccf6209569514a1e6c36f6d331fcf5d3d41316 (diff) | |
download | FreeBSD-src-5fad450f04bcc9d8d9f17c31d616f9ef96907b6b.zip FreeBSD-src-5fad450f04bcc9d8d9f17c31d616f9ef96907b6b.tar.gz |
In null_lookup(), do the needed cleanup instead of panicing saying
the cleanup is needed.
Reported by: kris, pho
Tested by: pho
MFC after: 2 weeks
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/nullfs/null_vnops.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c index 483c702..b51d8cd 100644 --- a/sys/fs/nullfs/null_vnops.c +++ b/sys/fs/nullfs/null_vnops.c @@ -365,11 +365,10 @@ null_lookup(struct vop_lookup_args *ap) vrele(lvp); } else { error = null_nodeget(dvp->v_mount, lvp, &vp); - if (error) { - /* XXX Cleanup needed... */ - panic("null_nodeget failed"); - } - *ap->a_vpp = vp; + if (error) + vput(lvp); + else + *ap->a_vpp = vp; } } return (error); |