diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2010-02-05 02:21:06 -0500 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-03-03 14:07:59 -0500 |
| commit | d498b25a4f877be535246c4e5b6ee5890781a477 (patch) | |
| tree | 15c92bc7265bc615604c722e08195c728369fab7 | |
| parent | 47cd813f2984569570021ce3d34cdf9cb20aa6a2 (diff) | |
get rid of useless vfsmount_lock use in put_mnt_ns()
It hadn't been needed since we'd sanitized the logics in
mark_mounts_for_expiry() (which, in turn, used to be a
rudiment of bad old times when namespace_sem was per-ns).
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | fs/namespace.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 970fe79d7867..b0b15cc2117c 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
| @@ -2344,17 +2344,13 @@ void __init mnt_init(void) | |||
| 2344 | 2344 | ||
| 2345 | void put_mnt_ns(struct mnt_namespace *ns) | 2345 | void put_mnt_ns(struct mnt_namespace *ns) |
| 2346 | { | 2346 | { |
| 2347 | struct vfsmount *root; | ||
| 2348 | LIST_HEAD(umount_list); | 2347 | LIST_HEAD(umount_list); |
| 2349 | 2348 | ||
| 2350 | if (!atomic_dec_and_lock(&ns->count, &vfsmount_lock)) | 2349 | if (!atomic_dec_and_test(&ns->count)) |
| 2351 | return; | 2350 | return; |
| 2352 | root = ns->root; | ||
| 2353 | ns->root = NULL; | ||
| 2354 | spin_unlock(&vfsmount_lock); | ||
| 2355 | down_write(&namespace_sem); | 2351 | down_write(&namespace_sem); |
| 2356 | spin_lock(&vfsmount_lock); | 2352 | spin_lock(&vfsmount_lock); |
| 2357 | umount_tree(root, 0, &umount_list); | 2353 | umount_tree(ns->root, 0, &umount_list); |
| 2358 | spin_unlock(&vfsmount_lock); | 2354 | spin_unlock(&vfsmount_lock); |
| 2359 | up_write(&namespace_sem); | 2355 | up_write(&namespace_sem); |
| 2360 | release_mounts(&umount_list); | 2356 | release_mounts(&umount_list); |
