Subject: kern/10122: /var/run as mount_mfs
To: None <gnats-bugs@gnats.netbsd.org>
From: None <matsunaw@ja2.so-net.ne.jp>
List: netbsd-bugs
Date: 05/15/2000 11:14:14
>Number:         10122
>Category:       kern
>Synopsis:       /var/run as mount_mfs
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 15 11:15:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Hitoshi Matsunawa
>Release:        NetBSD 1.4.2 i386
>Organization:

>Environment:

System: NetBSD 1.4.2 i386
Running daemons: syslogd, named, update, cron, apmd, inetd
Mounted (mfs) filesystem: /tmp and /var/run mounted as mfs

>Description:

If ``halt''-ed immediately after creating some number of dirty buffer,
system will fail to shutdown.

>How-To-Repeat:

  % mknmz -a ~/src/linux-2.3.51/Documentation/
  % super halt

>Fix:

If I changed mfs_start() (in src/ufs/mfs/mfs_vfops.c) as follows, the
problem disappear (at least for me).

----
	while(mounted) {
		while(bio_request exist)
			doio (...);
		if(signaled)
			dounmount (...);
		signaled = tsleep (...);
	}
----

It may still potentially problematic, since mfs i/o is only served by
a mfs process. When a mfs process enters into doumount(), mfs i/o
won't be served for other processes (other than mfs process itself).
>Release-Note:
>Audit-Trail:
>Unformatted: