ovl: Do not lose security.capability xattr over metadata file copy-up
authorVivek Goyal <vgoyal@redhat.com>
Wed, 30 Jan 2019 19:01:57 +0000 (14:01 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Mar 2019 19:09:59 +0000 (20:09 +0100)
commit205f149f1a358fc2a054461dd1432e52263cbc1e
tree2abef2660e332461dd0ba3ea02b67e4347b65a37
parent6f048ae2d25f94490c15320ccc6ed8b6587f1258
ovl: Do not lose security.capability xattr over metadata file copy-up

commit 993a0b2aec52754f0897b1dab4c453be8217cae5 upstream.

If a file has been copied up metadata only, and later data is copied up,
upper loses any security.capability xattr it has (underlying filesystem
clears it as upon file write).

From a user's point of view, this is just a file copy-up and that should
not result in losing security.capability xattr.  Hence, before data copy
up, save security.capability xattr (if any) and restore it on upper after
data copy up is complete.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Fixes: 0c2888749363 ("ovl: A new xattr OVL_XATTR_METACOPY for file on upper")
Cc: <stable@vger.kernel.org> # v4.19+
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/overlayfs/copy_up.c
fs/overlayfs/overlayfs.h
fs/overlayfs/util.c