more conversions to namespace_unlock()
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 16 Mar 2013 18:42:19 +0000 (14:42 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 9 Apr 2013 18:12:53 +0000 (14:12 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namespace.c

index c04afaf0e3dc08d06801c76b08e801376e2cee9f..7563270a43abf11cbdaeb3a625528f3d90308a32 100644 (file)
@@ -1426,13 +1426,11 @@ struct vfsmount *collect_mounts(struct path *path)
 
 void drop_collected_mounts(struct vfsmount *mnt)
 {
-       LIST_HEAD(umount_list);
        down_write(&namespace_sem);
        br_write_lock(&vfsmount_lock);
-       umount_tree(real_mount(mnt), 0, &umount_list);
+       umount_tree(real_mount(mnt), 0, &unmounted);
        br_write_unlock(&vfsmount_lock);
-       up_write(&namespace_sem);
-       release_mounts(&umount_list);
+       namespace_unlock();
 }
 
 int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
@@ -2060,7 +2058,6 @@ void mark_mounts_for_expiry(struct list_head *mounts)
 {
        struct mount *mnt, *next;
        LIST_HEAD(graveyard);
-       LIST_HEAD(umounts);
 
        if (list_empty(mounts))
                return;
@@ -2083,12 +2080,10 @@ void mark_mounts_for_expiry(struct list_head *mounts)
        while (!list_empty(&graveyard)) {
                mnt = list_first_entry(&graveyard, struct mount, mnt_expire);
                touch_mnt_namespace(mnt->mnt_ns);
-               umount_tree(mnt, 1, &umounts);
+               umount_tree(mnt, 1, &unmounted);
        }
        br_write_unlock(&vfsmount_lock);
-       up_write(&namespace_sem);
-
-       release_mounts(&umounts);
+       namespace_unlock();
 }
 
 EXPORT_SYMBOL_GPL(mark_mounts_for_expiry);
@@ -2741,16 +2736,13 @@ void __init mnt_init(void)
 
 void put_mnt_ns(struct mnt_namespace *ns)
 {
-       LIST_HEAD(umount_list);
-
        if (!atomic_dec_and_test(&ns->count))
                return;
        down_write(&namespace_sem);
        br_write_lock(&vfsmount_lock);
-       umount_tree(ns->root, 0, &umount_list);
+       umount_tree(ns->root, 0, &unmounted);
        br_write_unlock(&vfsmount_lock);
-       up_write(&namespace_sem);
-       release_mounts(&umount_list);
+       namespace_unlock();
        free_mnt_ns(ns);
 }