summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_linker.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2002-02-10 21:29:02 +0000
committerrwatson <rwatson@FreeBSD.org>2002-02-10 21:29:02 +0000
commite2e50cbb210781fd94dd8d7417b92365946415cf (patch)
treeb5dd009f590bc8904ed2089596aaec8201f79585 /sys/kern/kern_linker.c
parentd6e7adf3c2e8f06f20a4a6624edf46843f2d2f2f (diff)
downloadFreeBSD-src-e2e50cbb210781fd94dd8d7417b92365946415cf.zip
FreeBSD-src-e2e50cbb210781fd94dd8d7417b92365946415cf.tar.gz
Add a comment indicating that the vnode locking in this section of the
kernel linker code may be wrong: it fails to hold a lock across the call to VOP_GETATTR(), and vn_rdwr() with IO_NODELOCKED.
Diffstat (limited to 'sys/kern/kern_linker.c')
-rw-r--r--sys/kern/kern_linker.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index bc969e4..b5e8070 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -1370,6 +1370,9 @@ linker_lookup_file(const char *path, int pathlen,
* Lookup KLD which contains requested module in the "linker.hints" file.
* If version specification is available, then try to find the best KLD.
* Otherwise just find the latest one.
+ *
+ * XXX: Vnode locking here is hosed; lock should be held for calls to
+ * VOP_GETATTR() and vn_rdwr().
*/
static char *
linker_hints_lookup(const char *path, int pathlen,
OpenPOWER on IntegriCloud