]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit
ovl: allow upperdir inside lowerdir
authorMiklos Szeredi <mszeredi@redhat.com>
Mon, 12 Apr 2021 10:00:37 +0000 (12:00 +0200)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 19 May 2021 08:03:35 +0000 (10:03 +0200)
commitdf6157c1b9fa313129926976be2ef49971558689
tree3486f5a7ca5bbdf18274c93f841c4cdf39456d0c
parent5025da7595337342e726165be3c23093624d2c0e
ovl: allow upperdir inside lowerdir

BugLink: https://bugs.launchpad.net/bugs/1928850
commit 708fa01597fa002599756bf56a96d0de1677375c upstream.

Commit 146d62e5a586 ("ovl: detect overlapping layers") made sure we don't
have overlapping layers, but it also broke the arguably valid use case of

 mount -olowerdir=/,upperdir=/subdir,..

where upperdir overlaps lowerdir on the same filesystem.  This has been
causing regressions.

Revert the check, but only for the specific case where upperdir and/or
workdir are subdirectories of lowerdir.  Any other overlap (e.g. lowerdir
is subdirectory of upperdir, etc) case is crazy, so leave the check in
place for those.

Overlaps are detected at lookup time too, so reverting the mount time check
should be safe.

Fixes: 146d62e5a586 ("ovl: detect overlapping layers")
Cc: <stable@vger.kernel.org> # v5.2
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
fs/overlayfs/super.c