+++ This bug was initially created as a clone of Bug #976250 +++ Description of problem: Make xfs filesystem failed with specified blocksize. works for ext file system Version-Release number of selected component (if applicable): libguestfs-1.22.2-1.el7.x86_64 Also happens with libguestfs-1.23.7-1.fc20.x86_64 How reproducible: 100% Steps to Reproduce: # guestfish -x -v -N fs:xfs mkfs-opts xfs /dev/sda1 blocksize:4096 udevadm settle libguestfs: recv_from_daemon: received GUESTFS_LAUNCH_FLAG libguestfs: [05851ms] appliance is up libguestfs: trace: launch = 0 libguestfs: trace: part_disk "/dev/sda" "mbr" guestfsd: main_loop: new request, len 0x3c udevadm settle parted -s -- /dev/sda mklabel msdos mkpart primary 128s -128s Warning: The resulting partition is not properly aligned for best performance. udevadm settle libguestfs: trace: part_disk = 0 libguestfs: trace: mkfs "xfs" "/dev/sda1" guestfsd: main_loop: proc 210 (part_disk) took 0.18 seconds guestfsd: main_loop: new request, len 0x50 wipefs -a --force /dev/sda1 mkfs -t xfs -f /dev/sda1 libguestfs: trace: mkfs = 0 libguestfs: trace: mkfs "xfs" "/dev/sda1" "blocksize:4096" guestfsd: main_loop: proc 278 (mkfs) took 0.20 seconds guestfsd: main_loop: new request, len 0x50 wipefs -a --force /dev/sda1 mkfs -t xfs -f -b 4096 /dev/sda1 unknown option -b 4096 Usage: mkfs.xfs /* blocksize */\t\t[-b log=n|size=num] /* data subvol */\t[-d agcount=n,agsize=n,file,name=xxx,size=num, \t\t\t (sunit=value,swidth=value|su=num,sw=num), \t\t\t sectlog=n|sectsize=num /* inode size */\t[-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2, \t\t\t projid32bit=0|1] /* log subvol */\t[-l agnum=n,internal,size=num,logdev=xxx,version=n \t\t\t sunit=value|su=num,sectlog=n|sectsize=num, \t\t\t lazy-count=0|1] /* label */\t\t[-L label (maximum 12 characters)] /* naming */\t\t[-n log=n|size=num,version=2|ci] /* prototype file */\t[-p fname] /* quiet */\t\t[-q] /* realtime subvol */\t[-r extsize=num,size=num,rtdev=xxx] /* sectorsize */\t[-s log=n|size=num] /* version */\t\t[-V] \t\t\tdevicename <devicename> is required unless -d name=xxx is given. <num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB), xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB). <value> is xxx (512 byte blocks). guestfsd: error: xfs: /dev/sda1: unknown option -b 4096 Usage: mkfs.xfs /* blocksize */\t\t[-b log=n|size=num] /* data subvol */\t[-d agcount=n,agsize=n,file,name=xxx,size=num, \t\t\t (sunit=value,swidth=value|su=num,sw=num), \t\t\t sectlog=n|sectsize=num /* inode size */\t[-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2, \t\t\t projid32bit=0|1] /* log subvol */\t[-l agnum=n,internal,size=num,logdev=xxx,version=n \t\t\t sunit=value|su=num,sectlog=n|sectsize=num, \t\t\t lazy-count=0|1] /* label */\t\t[-L label (maximum 12 characters)] /* naming */\t\t[-n log=n|size=num,version=2|ci] /* prototype file */\t[-p fname] /* quiet */\t\t[-q] /* realtime subvol */\t[-r extsize=num,size=num,rtdev=xxx] /* sectorsize */\t[-s log=n|size=num] /* version */\t\t[-V] \t\t\tdevicename <devicename> is required unless -d name=xxx is given. <num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB), xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB). <value> is xxx (512 byte blocks). guestfsd: main_loop: proc 278 (mkfs) took 0.08 seconds libguestfs: trace: mkfs = -1 (error) libguestfs: error: mkfs: xfs: /dev/sda1: unknown option -b 4096 Usage: mkfs.xfs /* blocksize */ [-b log=n|size=num] /* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num, (sunit=value,swidth=value|su=num,sw=num), sectlog=n|sectsize=num /* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2, projid32bit=0|1] /* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n sunit=value|su=num,sectlog=n|sectsize=num, lazy-count=0|1] /* label */ [-L label (maximum 12 characters)] /* naming */ [-n log=n|size=num,version=2|ci] /* prototype file */ [-p fname] /* quiet */ [-q] /* realtime subvol */ [-r extsize=num,size=num,rtdev=xxx] /* sectorsize */ [-s log=n|size=num] /* version */ [-V] devicename <devicename> is required unless -d name=xxx is given. <num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB), xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB). <value> is xxx (512 byte blocks). libguestfs: trace: close libguestfs: closing guestfs handle 0x7fe65954b120 (state 2) libguestfs: trace: internal_autosync guestfsd: main_loop: new request, len 0x28 fsync /dev/sda guestfsd: main_loop: proc 282 (internal_autosync) took 0.00 seconds libguestfs: trace: internal_autosync = 0 libguestfs: sending SIGTERM to process 30679 libguestfs: command: run: rm libguestfs: command: run: \ -rf /tmp/libguestfsuWbhmx Actual results: Failed due to "unknown option -b" Expected results: Make file system successfully Additional info:
Fixed upstream by: https://github.com/libguestfs/libguestfs/commit/3201e7556424bd305ec39ac49dd84c0471f64544