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> 

index | next in thread | previous in thread | raw e-mail

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


home | help

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