patch for ext2fs unmount problem at shutdown
Don Lewis
truckman at FreeBSD.org
Tue Sep 6 00:57:12 PDT 2005
On 6 Sep, Poul-Henning Kamp wrote:
> In message <200509060739.j867dT0x031916 at gw.catspoiler.org>, Don Lewis writes:
>>Attached below is a patch to fix the problem caused by having any ext2fs
>>file systems mounted at system shutdown time that prevents any of the
>>file systems from being unmounted and then being marked dirty when the
>>system comes back up. It works by tweaking ext2fs so that it marks the
>>bufs that it keeps locked as long as the file system is mounted, and
>>tweaks the shutdown code to ignore these bufs when it is counting the
>>number of busy buffers.
>
> Why is this necessary ? As far as I know we do an orderly unmount
> of all filesystems at shutdown, so shouldn't ext2fs release the
> buffers at that time ?
We count the busy buffers before unmounting anything, and skip the
unmount if the count is nonzero.
if (nbusy) {
/*
* Failed to sync all blocks. Indicate this and don't
* unmount filesystems (thus forcing an fsck on reboot).
*/
printf("Giving up on %d buffers\n", nbusy);
DELAY(5000000); /* 5 seconds */
} else {
if (!first_buf_printf)
printf("Final sync complete\n");
/*
* Unmount filesystems
*/
if (panicstr == 0)
vfs_unmountall();
}
It would be nice if we only skipped unmounting those file systems that
failed to sync.
More information about the freebsd-current
mailing list