]> granicus.if.org Git - strace/commitdiff
btrfs: implement decoding of BTRFS_IOC_FORGET_DEV argument
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 21 May 2019 14:53:06 +0000 (14:53 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 21 May 2019 14:53:06 +0000 (14:53 +0000)
... 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.

btrfs.c
tests/btrfs.c

diff --git a/btrfs.c b/btrfs.c
index b8fa1091f093e85bc68b3eacc9f7e7aa189bb7b5..dc5eff1a24b80fa25116592db70261d2bfe52058 100644 (file)
--- 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:
index 27ace56fa9a850ebfd2b55bc73f2fa1a0f1d2330..1fd5d55a5c89b67cb7631bc8d90b3de9ee22e1a4 100644 (file)
@@ -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));