Date: Tue, 30 Jun 2009 18:08:00 +0200 From: Attilio Rao <attilio@freebsd.org> To: Rick Macklem <rmacklem@uoguelph.ca> Cc: freebsd-fs@freebsd.org, freebsd-current@freebsd.org Subject: Re: umount -f implementation Message-ID: <3bbf2fe10906300908p6b0f314di25bab46b03b5933a@mail.gmail.com> In-Reply-To: <Pine.GSO.4.63.0906301150370.10386@muncher.cs.uoguelph.ca> References: <Pine.GSO.4.63.0906281955160.5084@muncher.cs.uoguelph.ca> <3bbf2fe10906290256x4bfbe263jccef017a557f9410@mail.gmail.com> <Pine.GSO.4.63.0906301150370.10386@muncher.cs.uoguelph.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
2009/6/30 Rick Macklem <rmacklem@uoguelph.ca>: > > > On Mon, 29 Jun 2009, Attilio Rao wrote: > >> >> 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? >> > From other responses, it does look like pursuing this is appropriate > and that current behaviour is considered a bug. > > I should have noted in the previous email that I suspected that my simple > patch didn't handle all cases, which I have just determined via testing. > > Unfortunately, the thread doing "umount" can also get stuck in an msleep() > while waiting for the mnt_lockref to go to 0, which happens before the > VFS_UNMOUNT() call. (mnt_lockref gets incremented by various system > calls that call vfs_busy().) Sorry for not answering and I still didn't read this thread at all, I just wanted to let you know that this msleep is skipped for the force unmount, it should just happen in a normal unmount case. Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3bbf2fe10906300908p6b0f314di25bab46b03b5933a>