Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Aug 2001 12:56:09 -0500
From:      Alfred Perlstein <bright@mu.org>
To:        Rex Luo <rexluo@synology.com>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: unpaired splbio() and splx() in vfs_unmountall()
Message-ID:  <20010821125609.F81307@elvis.mu.org>
In-Reply-To: <200108210914.RAA02022@synology.com>; from rexluo@synology.com on Tue, Aug 21, 2001 at 05:14:51PM %2B0800
References:  <200108210914.RAA02022@synology.com>

next in thread | previous in thread | raw e-mail | index | archive | help
* Rex Luo <rexluo@synology.com> [010821 04:14] wrote:
> Dear,
> 
>    I modifid kernel to write to disk directly after unmount all mounted 
> filesystem in boot() kern/kern_shutdown.c. However, I found that my IO requests
> wouldn't have callback from device interrupt routine. I traced the codes and use
> gdb to find something out. The interesting is after execute 
> 
>      vfs_unmountall() -> dounmount() -> ffs_unmount() -> ffs_flushfiles() ->
>      vflush()-> ??? the interrupt mask is set by splbio() without splx(), 
>      therefore, all my following requests cannot return.
> 
> Notice that, the situation only happens after heavy IO, for example: cp 30 files
> at the same time.
> 
>    I use spl0() to solve the prolbem, but I think it's not the right way to do 
> that. Can anyone provide some clues or suggestions.

That makes no sense.  All you need to do is find the where the splbio()
is that doesn't have a corresponding splx().  You can use the SPLASSERT
functions to do that.

-- 
-Alfred Perlstein [alfred@freebsd.org]
Ok, who wrote this damn function called '??'?
And why do my programs keep crashing in it?

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010821125609.F81307>