echo $((${size:0:${#size}-1}*$mul))
}
+# Print trimmed bytes of fstrim
+# Starting from util-linux v2.23 fstrim usees human readable sizes in
+# verbose output
+_filter_fstrim()
+{
+ egrep -o "[0-9]+ bytes" | $AWK_PROG '{print $1}'
+}
+
# make sure this script returns success
/bin/true
# This is a bit fuzzy, but since the file system is fresh
# there should be at least (fssize/2) free space to trim.
# This is supposed to catch wrong FITRIM argument handling
-out=$($FSTRIM_PROG -v -o10M $SCRATCH_MNT)
-nopref=${out##*: }
-bytes=${nopref%% *}
+bytes=$($FSTRIM_PROG -v -o10M $SCRATCH_MNT | _filter_fstrim)
if [ $bytes -gt $(_math "$fssize*1024") ]; then
status=1
# It is because btrfs does not have not-yet-used parts of the device
# mapped and since we got here right after the mkfs, there is not
# enough free extents in the root tree.
-out=$($FSTRIM_PROG -v -l$len $SCRATCH_MNT)
-nopref=${out##*: }
-bytes=${nopref%% *}
+bytes=$($FSTRIM_PROG -v -l$len $SCRATCH_MNT | _filter_fstrim)
if [ $bytes -le $(_math "$fssize*512") ] && [ $FSTYP != "btrfs" ]; then
status=1
echo "It seems that fs logic handling len argument overflows"