NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/52147: deadlock when booting from USB disk
The following reply was made to PR kern/52147; it has been noted by GNATS.
From: christos%zoulas.com@localhost (Christos Zoulas)
To: gnats-bugs%NetBSD.org@localhost, jdolecek%NetBSD.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost, mlelstv%serpens.de@localhost
Cc:
Subject: Re: kern/52147: deadlock when booting from USB disk
Date: Wed, 12 Apr 2017 20:04:50 -0400
On Apr 12, 11:20pm, mlelstv%serpens.de@localhost (Michael van Elst) wrote:
-- Subject: Re: kern/52147: deadlock when booting from USB disk
Looks like this should do it?
christos
Index: kern_module.c
===================================================================
RCS file: /cvsroot/src/sys/kern/kern_module.c,v
retrieving revision 1.123
diff -u -u -r1.123 kern_module.c
--- kern_module.c 11 Apr 2017 21:15:57 -0000 1.123
+++ kern_module.c 13 Apr 2017 00:04:02 -0000
@@ -609,7 +609,7 @@
{
int error;
- if (rootvp == NULL) {
+ if (rootvp == NULL || rootvp->v_mount == NULL) {
#ifdef DIAGNOSTIC
printf("%s: trying to load `%s' before root is mounted\n",
__func__, filename);
@@ -617,6 +617,14 @@
return EPERM;
}
+ if (fstrans_getstate(rootvp->v_vmount) != FSTRANS_NORMAL) {
+#ifdef DIAGNOSTIC
+ printf("%s: trying to load `%s' while root is suspended\n",
+ __func__, filename);
+#endif
+ return EPERM;
+ }
+
kernconfig_lock();
/* Nothing if the user has disabled it. */
Home |
Main Index |
Thread Index |
Old Index