DragonFlyBSD Kernel Audit
DF-0906 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/vfs/hammer2/hammer2_iocom.c b/sys/vfs/hammer2/hammer2_iocom.c
--- a/sys/vfs/hammer2/hammer2_iocom.c
+++ b/sys/vfs/hammer2/hammer2_iocom.c
@@ -373,6 +373,7 @@
 	kdmsg_msg_t *msg;
 
 	/* XXX interlock against connection state termination */
+	lockmgr(&hmp->iocom.msglk, LK_EXCLUSIVE);
 	kprintf("volconf update %p\n", hmp->iocom.conn_state);
 	if (hmp->iocom.conn_state) {
 		kprintf("TRANSMIT VOLCONF VIA OPEN CONN TRANSACTION\n");
@@ -384,4 +385,5 @@
 		H2_LNK_VOLCONF(msg)->index = index;
 		kdmsg_msg_write(msg);
 	}
-}
+	lockmgr(&hmp->iocom.msglk, LK_RELEASE);
+}