Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Jun 2009 14:58:39 -0700
From:      Kirk McKusick <mckusick@mckusick.com>
To:        Attilio Rao <attilio@freebsd.org>
Cc:        freebsd-fs@freebsd.org, Rick Macklem <rmacklem@uoguelph.ca>, freebsd-current@freebsd.org
Subject:   Re: umount -f implementation 
Message-ID:  <200906302158.n5ULwdxk002480@chez.mckusick.com>
In-Reply-To: <3bbf2fe10906300908p6b0f314di25bab46b03b5933a@mail.gmail.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Just for the history books, there originally were two forms of
forced unmounts. The gentle force (-f) and the brute force (-F)
unmount. The -f unmount flushes out all the dirty buffers so that
when the unmount completes no data is lost and the filesystem is
in a consistent state.  The -F unmount invalidates and discards all
the dirty buffers without attempting to do any I/O on them. The
result is lost data and a possibly inconsistent filesystem. But
it will get the job done even if the disk has died or the server
has gone away.

For reasons that I never tracked down, the -F unmount option was
never incorporated into FreeBSD when they did the merge from
4.4BSD-Lite II, so that functionality never made it into the system.
It is actually much easier to do than unmount -f since you just
walk through and set B_INVAL and B_ERROR on all the dirty buffers
for that filesystem. The problem with unmount -f is that it will
hang if the server is gone since it will insist on pushing back all
the dirty buffers.

	Kirk McKusick



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906302158.n5ULwdxk002480>