[PATCH 38/73] union-mount: Prevent bind mounts of union mounts [ver#2]

From: David Howells
Date: Tue Feb 21 2012 - 14:12:21 EST


From: Valerie Aurora <vaurora@xxxxxxxxxx>

Prevent bind mounts of parts of union mounts.

XXX - Bind mounting parts of union mounts is probably easy to
implement, but requires some careful thought about corner cases,
extensive testing, and some refactoring of the code.

Original-author: Valerie Aurora <vaurora@xxxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
---

fs/namespace.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/fs/namespace.c b/fs/namespace.c
index 3c950fa..c990f69 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1845,6 +1845,12 @@ static int do_loopback(struct path *path, char *old_name,
if (IS_MNT_UNBINDABLE(old))
goto out2;

+ /* XXX - Mounting a subtree of a union mount elsewhere requires careful
+ * thought and some refactoring.
+ */
+ if (IS_MNT_UNION(old_path.mnt))
+ goto out2;
+
if (!check_mnt(real_mount(path->mnt)) || !check_mnt(old))
goto out2;


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