@@ -264,6 +264,23 @@ _scratch_mount_options()
$SCRATCH_DEV $SCRATCH_MNT
}
+_supports_filetype()
+{
+ local dir=$1
+ shift 1
+
+ local upper_fst=$(df --output=fstype $dir | tail -1)
+ case "$upper_fst" in
+ xfs)
+ xfs_info $dir | grep -q "ftype=1"
+ ;;
+ ext2|ext3|ext4)
+ tune2fs -l $(df --output=source $dir | tail -1) | \
+ grep -q filetype
+ ;;
+ esac
+}
+
# helper function to do the actual overlayfs mount operation
_overlay_mount_dirs()
{
@@ -284,20 +301,8 @@ _overlay_mount()
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
+ _supports_filetype $dir || \
+ _notrun "upper fs needs to support d_type"
mkdir -p $dir/$OVERLAY_UPPER_DIR
mkdir -p $dir/$OVERLAY_LOWER_DIR
_overlay_mount_dirs() checks for the filetype feature on upper dir fs. factor out that feature test to a helper. Signed-off-by: Amir Goldstein <amir73il@gmail.com> --- common/rc | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-)