From: Dmitry V. Levin Date: Tue, 21 May 2019 14:53:06 +0000 (+0000) Subject: btrfs: implement decoding of BTRFS_IOC_FORGET_DEV argument X-Git-Tag: v5.1~11 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a9328c6dc8c004d5066ffd3bfd90aad73bc6f4e0;p=strace 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. --- diff --git a/btrfs.c b/btrfs.c index b8fa1091..dc5eff1a 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 27ace56f..1fd5d55a 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));