{
mkfs_opts=$*
+ # remove crc related mkfs options if mkfs.xfs doesn't support v5 xfs
+ if [ -n "$XFS_MKFS_HAS_NO_META_SUPPORT" ]; then
+ mkfs_opts=`echo $mkfs_opts | sed "s/-m\s\+crc=.//"`
+ fi
+
_scratch_options mkfs
$MKFS_XFS_PROG $SCRATCH_OPTIONS $mkfs_opts $SCRATCH_DEV
fi
_command=`echo "$1" | awk '{ print $1 }'`
- if [ ! -x $command ]; then
+ if [ ! -x "$_command" ]; then
_notrun "$_name utility required, skipped this test"
fi
}
fi
}
+# this test requires the xfs sparse inode feature
+#
+_require_xfs_sparse_inodes()
+{
+ _scratch_mkfs_xfs_supported -m crc=1 -i sparse > /dev/null 2>&1 \
+ || _notrun "mkfs.xfs does not support sparse inodes"
+ _scratch_mkfs_xfs -m crc=1 -i sparse > /dev/null 2>&1
+ _scratch_mount >/dev/null 2>&1 \
+ || _notrun "kernel does not support sparse inodes"
+ umount $SCRATCH_MNT
+}
+
# this test requires that external log/realtime devices are not in use
#
_require_nonexternal()
echo $nr_inode
}
+_get_used_inode_percent()
+{
+ if [ -z "$1" ]; then
+ echo "Usage: _get_used_inode_percent <mnt>"
+ exit 1
+ fi
+ local pct_inode;
+ pct_inode=`$DF_PROG -i $1 | tail -1 | awk '{ print $6 }' | \
+ sed -e 's/%//'`
+ echo $pct_inode
+}
+
_get_free_inode()
{
if [ -z "$1" ]; then
echo $nr_inode
}
+# get the available space in bytes
+#
+_get_available_space()
+{
+ if [ -z "$1" ]; then
+ echo "Usage: _get_available_space <mnt>"
+ exit 1
+ fi
+ local avail_kb;
+ avail_kb=`$DF_PROG $1 | tail -n1 | awk '{ print $5 }'`
+ echo $((avail_kb * 1024))
+}
+
# get btrfs profile configs being tested
#
# A set of pre-set profile configs are exported via _btrfs_profile_configs
echo `basename $(_real_dev $1)`
}
+_sysfs_dev()
+{
+ local _dev=$1
+ local _maj=$(stat -c%t $_dev | tr [:lower:] [:upper:])
+ local _min=$(stat -c%T $_dev | tr [:lower:] [:upper:])
+ _maj=$(echo "ibase=16; $_maj" | bc)
+ _min=$(echo "ibase=16; $_min" | bc)
+ echo /sys/dev/block/$_maj:$_min
+}
+
get_block_size()
{
if [ -z $1 ] || [ ! -d $1 ]; then