common/rc: factor out _supports_filetype() helper
authorAmir Goldstein <amir73il@gmail.com>
Tue, 20 Dec 2016 13:17:33 +0000 (15:17 +0200)
committerEryu Guan <eguan@redhat.com>
Sat, 24 Dec 2016 12:21:47 +0000 (20:21 +0800)
_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>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
common/rc

index 21da293eb6be0192432b5f894fb9de8e75fcfea1..e65ee65d067f3def361d4b73098a0be87462348e 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -264,6 +264,22 @@ _scratch_mount_options()
                                        $SCRATCH_DEV $SCRATCH_MNT
 }
 
+_supports_filetype()
+{
+       local dir=$1
+
+       local fstyp=$(df --output=fstype $dir | tail -1)
+       case "$fstyp" 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 +300,7 @@ _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