mkfs.xfs will use the sector size exposed by the device, if this is larger than 32k this will fail as the largest sector size on XFS is 32k. Provide a sanity check to ensure we skip creating a filesystem if the sector size is larger than what XFS supports. Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx> --- common/xfs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/xfs b/common/xfs index 8b068837fa37..dbae572e4390 100644 --- a/common/xfs +++ b/common/xfs @@ -15,11 +15,18 @@ _xfs_mkfs_and_mount() { local mount_dir=$2 local bs=$(_min_io $bdev) local xfs_logsize="64m" + local sysfs="/sys/block/${bdev#/dev/}" + local logical_block_size=$(cat $sysfs/queue/logical_block_size) if [[ $bs -gt 4096 ]]; then xfs_logsize="128m" fi + if [[ $logical_block_size -gt 32768 ]]; then + SKIP_REASONS+=("max sector size for XFS is 32768 but device $bdev has a larger sector size $logical_block_size") + return 1 + fi + mkdir -p "${mount_dir}" umount "${mount_dir}" mkfs.xfs -l size=$xfs_logsize -f "${bdev}" -b size=$bs || return $? -- 2.45.2