summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2019-05-21 14:53:06 +0000
committerDmitry V. Levin <ldv@altlinux.org>2019-05-21 14:53:06 +0000
commita9328c6dc8c004d5066ffd3bfd90aad73bc6f4e0 (patch)
treee15897d5a112ae5f0db1c01c9f09db2638ab8da6
parentb20a59db808984e0882ecec4b6c313b20bdf9295 (diff)
downloadstrace-a9328c6dc8c004d5066ffd3bfd90aad73bc6f4e0.tar.gz
btrfs: implement decoding of BTRFS_IOC_FORGET_DEV argument
... introduced by Linux kernel commit v5.1-rc1~47^2~47. * btrfs.c (btrfs_ioctl) [BTRFS_IOC_FORGET_DEV]: Handle BTRFS_IOC_FORGET_DEV. * tests/btrfs.c (btrfs_test_device_ioctls) [BTRFS_IOC_FORGET_DEV]: Check it.
-rw-r--r--btrfs.c3
-rw-r--r--tests/btrfs.c11
2 files changed, 14 insertions, 0 deletions
diff --git a/btrfs.c b/btrfs.c
index b8fa1091f..dc5eff1a2 100644
--- a/btrfs.c
+++ b/btrfs.c
@@ -1161,6 +1161,9 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
case BTRFS_IOC_SNAP_CREATE:
case BTRFS_IOC_RESIZE:
case BTRFS_IOC_SCAN_DEV:
+# ifdef BTRFS_IOC_FORGET_DEV
+ case BTRFS_IOC_FORGET_DEV:
+# endif
case BTRFS_IOC_ADD_DEV:
case BTRFS_IOC_RM_DEV:
case BTRFS_IOC_SUBVOL_CREATE:
diff --git a/tests/btrfs.c b/tests/btrfs.c
index 27ace56fa..1fd5d55a5 100644
--- a/tests/btrfs.c
+++ b/tests/btrfs.c
@@ -752,6 +752,17 @@ btrfs_test_device_ioctls(void)
printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
ioc(BTRFS_IOC_SCAN_DEV), (int) args.fd, args.name);
+# ifdef BTRFS_IOC_FORGET_DEV
+ ioctl(-1, BTRFS_IOC_FORGET_DEV, NULL);
+ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_FORGET_DEV));
+
+ strcpy(args.name, devname);
+ ioctl(-1, BTRFS_IOC_FORGET_DEV, &args);
+ printf("ioctl(-1, %s, {fd=%d, name=\"%s\"}) = -1 EBADF (%m)\n",
+ ioc(BTRFS_IOC_FORGET_DEV), (int) args.fd, args.name);
+# endif
+
ioctl(-1, BTRFS_IOC_ADD_DEV, NULL);
printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", ioc(BTRFS_IOC_ADD_DEV));