]> granicus.if.org Git - strace/commitdiff
tests/btrfs.c: accept possible failure of BTRFS_IOC_BALANCE_V2
authorEugene Syromyatnikov <evgsyr@gmail.com>
Mon, 19 Mar 2018 02:14:20 +0000 (03:14 +0100)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 20 Apr 2018 12:39:05 +0000 (12:39 +0000)
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.

tests/btrfs.c

index cad2e7342eb51a33fd20e2d19b52b6e670cc6afa..64ac2acc7d92a6e8fc51ace814e48a654eb552cd 100644 (file)
@@ -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);
+               }
        }
 }