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)