overlay: notrun if upper fs does not support d_type

Overlayfs whiteout can be visible if underlying upper fs does not
support d_type. Kernel commit
	45aebea (ovl: Ensure upper filesystem supports d_type)
prevents mounting overlayfs like this since v4.6-rc1.

Check upper fs before mounting overlay, mark as not run if needs.

Signed-off-by: Xiong Zhou <xzhou@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Xiong Zhou
2016-05-09 10:55:52 +10:00
committed by Dave Chinner
parent a175556a26
commit 8582e24f94
+16
View File
@@ -273,6 +273,22 @@ _overlay_mount()
local dir=$1
local mnt=$2
shift 2
local upper_fst=$(df --output=fstype $dir | tail -1)
case "$upper_fst" in
xfs)
if ! xfs_info $dir | grep -q "ftype=1" ; then
_notrun "upper fs needs to support d_type"
fi
;;
ext2|ext3|ext4)
if ! tune2fs -l $(df --output=source $dir | tail -1) | \
grep -q filetype ; then
_notrun "upper fs needs to support d_type"
fi
;;
esac
mkdir -p $dir/$OVERLAY_UPPER_DIR
mkdir -p $dir/$OVERLAY_LOWER_DIR
mkdir -p $dir/$OVERLAY_WORK_DIR