]> err.no Git - linux-2.6/commit
[PATCH] umount_tree() locking change
authorRam Pai <linuxram@us.ibm.com>
Mon, 7 Nov 2005 22:17:04 +0000 (17:17 -0500)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 8 Nov 2005 02:18:10 +0000 (18:18 -0800)
commit70fbcdf4d252c6b17cc249cb9ac9b220cb0b863d
treecefa087774953dd7a2181513427577286f8e9f63
parent5b83d2c5c0afcf5a3517cf00d9ceb41b8345e01b
[PATCH] umount_tree() locking change

umount is done under the protection of the namespace semaphore.  This
can lead to intresting deadlocks when the last reference to a mount is
released, if filesystem code is in sufficiently nasty state.

This collects all the to-be-released-mounts and releases them after
releasing the namespace semaphore.  That both reduces the time we are
holding namespace semaphore and gets the things more robust.

Idea proposed by Al Viro.

Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/namespace.c