4.0-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Eric W. Biederman" <[email protected]>

commit 590ce4bcbfb4e0462a720a4ad901e84416080bba upstream.

In some instances it is necessary to know if the the unmounting
process has begun on a mount.  Add MNT_UMOUNT to make that reliably
testable.

This fix gets used in fixing locked mounts in MNT_DETACH

Signed-off-by: "Eric W. Biederman" <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 fs/namespace.c        |    4 +++-
 fs/pnode.c            |    1 +
 include/linux/mount.h |    1 +
 3 files changed, 5 insertions(+), 1 deletion(-)

--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1333,8 +1333,10 @@ static void umount_tree(struct mount *mn
        struct mount *p;
 
        /* Gather the mounts to umount */
-       for (p = mnt; p; p = next_mnt(p, mnt))
+       for (p = mnt; p; p = next_mnt(p, mnt)) {
+               p->mnt.mnt_flags |= MNT_UMOUNT;
                list_move(&p->mnt_list, &tmp_list);
+       }
 
        /* Hide the mounts from lookup_mnt and mnt_mounts */
        list_for_each_entry(p, &tmp_list, mnt_list) {
--- a/fs/pnode.c
+++ b/fs/pnode.c
@@ -384,6 +384,7 @@ static void __propagate_umount(struct mo
                if (child && list_empty(&child->mnt_mounts)) {
                        list_del_init(&child->mnt_child);
                        hlist_del_init_rcu(&child->mnt_hash);
+                       child->mnt.mnt_flags |= MNT_UMOUNT;
                        list_move_tail(&child->mnt_list, &mnt->mnt_list);
                }
        }
--- a/include/linux/mount.h
+++ b/include/linux/mount.h
@@ -61,6 +61,7 @@ struct mnt_namespace;
 #define MNT_DOOMED             0x1000000
 #define MNT_SYNC_UMOUNT                0x2000000
 #define MNT_MARKED             0x4000000
+#define MNT_UMOUNT             0x8000000
 
 struct vfsmount {
        struct dentry *mnt_root;        /* root of the mounted tree */


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to