From: Eugene Syromyatnikov Date: Mon, 19 Mar 2018 02:14:20 +0000 (+0100) Subject: tests/btrfs.c: accept possible failure of BTRFS_IOC_BALANCE_V2 X-Git-Tag: v4.23~297 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2b71146c3ad7a9914b7ff26e75bfca5b8a191f50;p=strace tests/btrfs.c: accept possible failure of BTRFS_IOC_BALANCE_V2 BTRFS_IOC_BALANCE_V2 ioctl might fail sometimes (for example, if it decides that it doesn't have enough free space). * tests/btrfs.c (btrfs_test_balance_ioctls): Print expected output for the BTRFS_IOC_BALANCE_V2 call based on its return code. --- diff --git a/tests/btrfs.c b/tests/btrfs.c index cad2e734..64ac2acc 100644 --- a/tests/btrfs.c +++ b/tests/btrfs.c @@ -595,6 +595,8 @@ btrfs_test_balance_ioctls(void) printf("}) = -1 EBADF (%m)\n"); if (write_ok) { + long ret; + args.flags = BTRFS_BALANCE_DATA | BTRFS_BALANCE_METADATA | BTRFS_BALANCE_SYSTEM; args.data.flags = 0; @@ -622,20 +624,24 @@ btrfs_test_balance_ioctls(void) btrfs_print_balance_args(&args.meta); printf(", sys="); btrfs_print_balance_args(&args.sys); - ioctl(btrfs_test_dir_fd, BTRFS_IOC_BALANCE_V2, &args); - printf("} => {flags="); - prfl_btrfs(btrfs_balance_flags, args.flags, - "BTRFS_BALANCE_???"); - printf(", state="); - prfl_btrfs(btrfs_balance_state, args.state, - "BTRFS_BALANCE_STATE_???"); - printf(", data="); - btrfs_print_balance_args(&args.data); - printf(", meta="); - btrfs_print_balance_args(&args.meta); - printf(", sys="); - btrfs_print_balance_args(&args.sys); - printf("}) = 0\n"); + ret = ioctl(btrfs_test_dir_fd, BTRFS_IOC_BALANCE_V2, &args); + if (ret < 0) { + printf("}) = %s\n", sprintrc(ret)); + } else { + printf("} => {flags="); + prfl_btrfs(btrfs_balance_flags, args.flags, + "BTRFS_BALANCE_???"); + printf(", state="); + prfl_btrfs(btrfs_balance_state, args.state, + "BTRFS_BALANCE_STATE_???"); + printf(", data="); + btrfs_print_balance_args(&args.data); + printf(", meta="); + btrfs_print_balance_args(&args.meta); + printf(", sys="); + btrfs_print_balance_args(&args.sys); + printf("}) = %ld\n", ret); + } } }