Subject: Re: kern/36395: _fstrans_start panic while executing umount
To: Bernd Ernesti <pr200703@veego.de>
From: Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
List: netbsd-bugs
Date: 05/28/2007 22:21:03
On Mon, May 28, 2007 at 07:55:00PM +0000, Bernd Ernesti wrote:
> >Number: 36395
> >Category: kern
> >Synopsis: _fstrans_start panic while executing umount
[snip]
It looks like this code path went wrong:
dounmount gets an error. Code is
if (error == 0 || (flags & MNT_FORCE))
error = VFS_UNMOUNT(mp, flags, l);
simple_lock(&mountlist_slock);
if (error) {
if ((mp->mnt_flag & (MNT_RDONLY | MNT_ASYNC)) == 0)
(void) vfs_allocate_syncvnode(mp);
This goes through vfs_allocate_syncvnode -> ... -> ffs_fsync -> _fstrans_start
Here we have an assertion ASSERT_SLEEPABLE() that panics because of the
simple_lock(&mountlist_slock).
--
Juergen Hannken-Illjes - hannken@eis.cs.tu-bs.de - TU Braunschweig (Germany)