Page MenuHomeFreeBSD

D19689.id55434.diff
No OneTemporary

D19689.id55434.diff

Index: sys/kern/uipc_mqueue.c
===================================================================
--- sys/kern/uipc_mqueue.c
+++ sys/kern/uipc_mqueue.c
@@ -869,7 +869,7 @@
if (dvp->v_type != VDIR)
return (ENOTDIR);
- error = VOP_ACCESS(dvp, VEXEC, cnp->cn_cred, cnp->cn_thread);
+ error = VOP_ACCESS(dvp, VEXEC, cnp->cn_cred, td);
if (error)
return (error);
Index: sys/kern/vfs_lookup.c
===================================================================
--- sys/kern/vfs_lookup.c
+++ sys/kern/vfs_lookup.c
@@ -317,6 +317,7 @@
cnp = &ndp->ni_cnd;
td = cnp->cn_thread;
p = td->td_proc;
+ ASSERT_CN_THREAD(&ndp->ni_cnd);
ndp->ni_cnd.cn_cred = ndp->ni_cnd.cn_thread->td_ucred;
KASSERT(cnp->cn_cred && p, ("namei: bad cred/proc"));
KASSERT((cnp->cn_nameiop & (~OPMASK)) == 0,
@@ -385,8 +386,7 @@
ndp->ni_loopcnt = 0;
#ifdef KTRACE
if (KTRPOINT(td, KTR_NAMEI)) {
- KASSERT(cnp->cn_thread == curthread,
- ("namei not using curthread"));
+ ASSERT_CN_THREAD(cnp);
ktrnamei(cnp->cn_pnbuf);
}
#endif
@@ -895,6 +895,7 @@
unionlookup:
#ifdef MAC
if ((cnp->cn_flags & NOMACCHECK) == 0) {
+ ASSERT_CN_THREAD(cnp);
error = mac_vnode_check_lookup(cnp->cn_thread->td_ucred, dp,
cnp);
if (error)
Index: sys/kern/vfs_subr.c
===================================================================
--- sys/kern/vfs_subr.c
+++ sys/kern/vfs_subr.c
@@ -4632,7 +4632,16 @@
if (!IGNORE_LOCK(vp) && VOP_ISLOCKED(vp) != LK_EXCLUSIVE)
vfs_badlock("is not exclusive locked but should be", str, vp);
}
+
#endif /* DEBUG_VFS_LOCKS */
+
+void
+assert_cn_thread(struct componentname *cnp)
+{
+
+ KASSERT(cnp->cn_thread == curthread,
+ ("cn_thread %p != curthread %p", cnp->cn_thread, curthread));
+}
void
vop_rename_fail(struct vop_rename_args *ap)

File Metadata

Mime Type
text/plain
Expires
Mon, Nov 17, 8:25 PM (7 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25417611
Default Alt Text
D19689.id55434.diff (1 KB)

Event Timeline