umount -f implementation

Attilio Rao attilio at freebsd.org
Mon Jun 29 09:56:13 UTC 2009


2009/6/29 Rick Macklem <rmacklem at uoguelph.ca>:
> I just noticed that when I do the following:
> - start a large write to an NFS mounted fs
> - network partition the server (unplug a net cable)
> - do a "umount -f <mntpoint>" on the machine
>
> that it gets stuck trying to write dirty blocks to the server.
>
> I had, in the past, assumed that a "umount -f" of an NFS mount would be
> used to get rid of an NFS mount on an unresponsive server and that loss
> of "writes in progress" would be expected to happen.
>
> Does that sound correct? (In other words, an I seeing a bug or a feature?)

While that should be real in principle (immediate shutdown of the fs
operation and unmounting of the partition) it is totally impossible to
have it completely unsleeping, so it can happen that also umount -f
sleeps / delays for some times (example: vflush).
Currently, umount -f is one of the most complicated thing to handle in
our VFS because it puts as requirement that vnodes can be reclaimed in
any moment, adding complexity and possibility for races.

What's the fix for your problem?

Thanks,
Attilio


-- 
Peace can only be achieved by understanding - A. Einstein


More information about the freebsd-current mailing list