summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorPatrick Mooney <pmooney@pfmooney.com>2016-08-16 17:41:44 +0000
committerPatrick Mooney <pmooney@pfmooney.com>2016-08-17 14:46:57 +0000
commitfae673de1d84b263986f4dcdde53f15478ad664d (patch)
tree7e931c50f5e90a2bfb37282245309f717f91fb3d /usr/src
parent7e7bddbc9d2d421663bc709927c98a0e849215ba (diff)
downloadillumos-joyent-fae673de1d84b263986f4dcdde53f15478ad664d.tar.gz
OS-5596 lxbrand lock ordering issue in lxpr_lookup_fdnode
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Approved by: Jerry Jelinek <jerry.jelinek@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/brand/lx/procfs/lx_prsubr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/usr/src/uts/common/brand/lx/procfs/lx_prsubr.c b/usr/src/uts/common/brand/lx/procfs/lx_prsubr.c
index c12118a3ea..37573a81f6 100644
--- a/usr/src/uts/common/brand/lx/procfs/lx_prsubr.c
+++ b/usr/src/uts/common/brand/lx/procfs/lx_prsubr.c
@@ -658,9 +658,9 @@ lxpr_lookup_fdnode(vnode_t *dvp, const char *name)
UF_EXIT(ufp);
}
mutex_exit(&fip->fi_lock);
- mutex_enter(&p->p_lock);
if (vp == NULL) {
+ mutex_enter(&p->p_lock);
lxpr_unlock(p);
lxpr_freenode(lxfp);
return (NULL);
@@ -682,6 +682,7 @@ lxpr_lookup_fdnode(vnode_t *dvp, const char *name)
LXPTOV(lxfp)->v_type = VNON;
}
+ mutex_enter(&p->p_lock);
lxpr_unlock(p);
ASSERT(LXPTOV(lxfp) != NULL);
return (LXPTOV(lxfp));