ovl: clear ATTR_FILE from attr->ia_valid
authorVivek Goyal <vgoyal@redhat.com>
Wed, 22 Apr 2020 13:08:49 +0000 (09:08 -0400)
committerMiklos Szeredi <mszeredi@redhat.com>
Thu, 30 Apr 2020 09:52:07 +0000 (11:52 +0200)
commite67f0216939c048f02fe58dc1113738380480061
treef74082e8d643615b91702d931b263710bf2e6307
parentae83d0b416db002fe95601e7f97f64b59514d936
ovl: clear ATTR_FILE from attr->ia_valid

ovl_setattr() can be passed an attr which has ATTR_FILE set and
attr->ia_file is a file pointer to overlay file. This is done in
open(O_TRUNC) path.

We should either replace with attr->ia_file with underlying file object or
clear ATTR_FILE so that underlying filesystem does not end up using
overlayfs file object pointer.

There are no good use cases yet so for now clear ATTR_FILE. fuse seems to
be one user which can use this. But it can work even without this.  So it
is not mandatory to pass ATTR_FILE to fuse.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Fixes: bccece1ead36 ("ovl: allow remote upper")
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/inode.c