summaryrefslogtreecommitdiff
path: root/fs/namespace.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2008-04-24 07:21:56 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2008-04-25 09:23:25 -0400
commit42faad99658eed7ca8bd328ffa4bcb7d78c9bcca (patch)
tree8b57fb69d1922939c6ba13f512a0ae54a3a171ef /fs/namespace.c
parent78d31a3a87f84cf56004b7bc154831f2ee1186e8 (diff)
downloadlwn-42faad99658eed7ca8bd328ffa4bcb7d78c9bcca.tar.gz
lwn-42faad99658eed7ca8bd328ffa4bcb7d78c9bcca.zip
[PATCH] restore sane ->umount_begin() API
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/namespace.c')
-rw-r--r--fs/namespace.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/namespace.c b/fs/namespace.c
index 0505fb61aa74..f48f98110c30 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1061,10 +1061,11 @@ static int do_umount(struct vfsmount *mnt, int flags)
* about for the moment.
*/
- lock_kernel();
- if (sb->s_op->umount_begin)
- sb->s_op->umount_begin(mnt, flags);
- unlock_kernel();
+ if (flags & MNT_FORCE && sb->s_op->umount_begin) {
+ lock_kernel();
+ sb->s_op->umount_begin(sb);
+ unlock_kernel();
+ }
/*
* No sense to grab the lock for this test, but test itself looks