diff mbox series

[v2,36/39] overlayfs: do not mount on top of idmapped mounts

Message ID 20201115103718.298186-37-christian.brauner@ubuntu.com (mailing list archive)
State New
Headers show
Series fs: idmapped mounts | expand

Commit Message

Christian Brauner Nov. 15, 2020, 10:37 a.m. UTC
Prevent overlayfs from being mounted on top of idmapped mounts until we
have ported it to handle this case and added proper testing for it.

Cc: Christoph Hellwig <hch@lst.de>
Cc: David Howells <dhowells@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
---
/* v2 */
patch introduced
---
 fs/overlayfs/super.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
diff mbox series

Patch

diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index 0d4f2baf6836..3cacc3d3fb65 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -1708,6 +1708,12 @@  static struct ovl_entry *ovl_get_lowerstack(struct super_block *sb,
 		if (err)
 			goto out_err;
 
+		if (mnt_idmapped(stack[i].mnt)) {
+			err = -EINVAL;
+			pr_err("idmapped lower layers are currently unsupported\n");
+			goto out_err;
+		}
+
 		lower = strchr(lower, '\0') + 1;
 	}
 
@@ -1939,6 +1945,12 @@  static int ovl_fill_super(struct super_block *sb, void *data, int silent)
 		if (err)
 			goto out_err;
 
+		if (mnt_idmapped(upperpath.mnt)) {
+			err = -EINVAL;
+			pr_err("idmapped lower layers are currently unsupported\n");
+			goto out_err;
+		}
+
 		err = ovl_get_workdir(sb, ofs, &upperpath);
 		if (err)
 			goto out_err;