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