i386/123768: [panic] [vm] 7.0-STABLE locking issue on Soekris
net4801 (sys/vm/vm_pageout.c)
Alexander
freebsd at nagilum.org
Tue Oct 21 14:27:14 UTC 2008
Thanks a lot for looking into this.
I backported patch to RELENG_7 (attached),
kernel build is in progress, unfortunately it will take about two days.
Then another day or two to test & verify.
Thanks & best regards,
Alex.
----- Message from kib at FreeBSD.org ---------
Date: Tue, 21 Oct 2008 09:36:38 GMT
From: kib at FreeBSD.org
Subject: Re: i386/123768: [panic] [vm] 7.0-STABLE locking issue on
Soekris net4801 (sys/vm/vm_pageout.c)
To: freebsd at nagilum.org, kib at FreeBSD.org, freebsd-i386 at FreeBSD.org
> Synopsis: [panic] [vm] 7.0-STABLE locking issue on Soekris net4801
> (sys/vm/vm_pageout.c)
>
> State-Changed-From-To: open->analyzed
> State-Changed-By: kib
> State-Changed-When: Tue Oct 21 09:35:51 UTC 2008
> State-Changed-Why:
> Take, I am going to commit Tor' patch.
>
>
> Responsible-Changed-From-To: freebsd-i386->kib
> Responsible-Changed-By: kib
> Responsible-Changed-When: Tue Oct 21 09:35:51 UTC 2008
> Responsible-Changed-Why:
> Take, I am going to commit Tor' patch.
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=123768
>
----- End message from kib at FreeBSD.org -----
========================================================================
# _ __ _ __ http://www.nagilum.org/ \n icq://69646724 #
# / |/ /__ ____ _(_) /_ ____ _ nagilum at nagilum.org \n +491776461165 #
# / / _ `/ _ `/ / / // / ' \ Amiga (68k/PPC): AOS/NetBSD/Linux #
# /_/|_/\_,_/\_, /_/_/\_,_/_/_/_/ Mac (PPC): MacOS-X / Linux / MacOS9 #
# /___/ x86: FreeBSD/Linux/Solaris/Win2k ARM9: EPOC EV6 #
========================================================================
----------------------------------------------------------------
cakebox.homeunix.net - all the machine one needs..
-------------- next part --------------
--- vfs_vnops.c.bak 2008-08-31 23:27:05.000000000 +0200
+++ vfs_vnops.c 2008-10-21 15:53:53.000000000 +0200
@@ -904,12 +904,17 @@
while ((mp->mnt_kern_flag & MNTK_SUSPEND) != 0) {
if (flags & V_NOWAIT) {
error = EWOULDBLOCK;
+ if (vp != NULL)
+ *mpp = NULL;
goto unlock;
}
error = msleep(&mp->mnt_flag, MNT_MTX(mp),
(PUSER - 1) | (flags & PCATCH), "suspfs", 0);
- if (error)
+ if (error) {
+ if (vp != NULL)
+ *mpp = NULL;
goto unlock;
+ }
}
if (flags & V_XSLEEP)
goto unlock;
@@ -959,6 +964,8 @@
if (flags & V_NOWAIT) {
MNT_REL(mp);
MNT_IUNLOCK(mp);
+ if (vp != NULL)
+ *mpp = NULL;
return (EWOULDBLOCK);
}
/*
@@ -1024,6 +1031,8 @@
vfs_rel(mp);
if (error == 0)
goto retry;
+ if (vp != NULL)
+ *mpp = NULL;
return (error);
}
More information about the freebsd-i386
mailing list