fs: limit filesystem stacking depth
authorMiklos Szeredi <mszeredi@suse.cz>
Thu, 23 Oct 2014 22:14:39 +0000 (00:14 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Mon, 22 Aug 2016 21:37:18 +0000 (22:37 +0100)
commit9d6c5babc04522ff85b550f14563970279ab8f90
treeeac3586fac45b937be45a00dc0ad784af33bc9f1
parent80055f78a9696b7760c9f673671cb840ca9a3f46
fs: limit filesystem stacking depth

commit 69c433ed2ecd2d3264efd7afec4439524b319121 upstream.

Add a simple read-only counter to super_block that indicates how deep this
is in the stack of filesystems.  Previously ecryptfs was the only stackable
filesystem and it explicitly disallowed multiple layers of itself.

Overlayfs, however, can be stacked recursively and also may be stacked
on top of ecryptfs or vice versa.

To limit the kernel stack usage we must limit the depth of the
filesystem stack.  Initially the limit is set to 2.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
[bwh: Backported to 3.2:
 - Drop changes to overlayfs
 - Adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/ecryptfs/main.c
include/linux/fs.h