ovl: allow upperdir inside lowerdir
authorMiklos Szeredi <mszeredi@redhat.com>
Mon, 12 Apr 2021 10:00:37 +0000 (12:00 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Mon, 12 Apr 2021 10:00:37 +0000 (12:00 +0200)
commit708fa01597fa002599756bf56a96d0de1677375c
tree784a9c17318567dffc6f4d5113ffb2c10e86ab48
parent321b46b904816241044e177c1d6282ad20f17416
ovl: allow upperdir inside lowerdir

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>
fs/overlayfs/super.c