]> git.baikalelectronics.ru Git - kernel.git/commit
ovl: Ensure upper filesystem supports d_type
authorVivek Goyal <vgoyal@redhat.com>
Mon, 22 Feb 2016 14:28:34 +0000 (09:28 -0500)
committerMiklos Szeredi <miklos@szeredi.hu>
Mon, 21 Mar 2016 16:31:45 +0000 (17:31 +0100)
commit1f6b8f1ccb45d5cc963d3da62974fa3460731bdb
treeae92aff7e8351c838975e1401bf510bece7fa09b
parent0b980bd482ad44eed86191d94cbee8f2004f44f1
ovl: Ensure upper filesystem supports d_type

In some instances xfs has been created with ftype=0 and there if a file
on lower fs is removed, overlay leaves a whiteout in upper fs but that
whiteout does not get filtered out and is visible to overlayfs users.

And reason it does not get filtered out because upper filesystem does
not report file type of whiteout as DT_CHR during iterate_dir().

So it seems to be a requirement that upper filesystem support d_type for
overlayfs to work properly. Do this check during mount and fail if d_type
is not supported.

Suggested-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/overlayfs.h
fs/overlayfs/readdir.c
fs/overlayfs/super.c