From: Brian Behlendorf Date: Wed, 1 May 2013 16:38:49 +0000 (-0700) Subject: Fix zinject list handlers X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=zfs.git;a=commitdiff_plain;h=937210a54b9c2d3dddc7221e31d5695e9720a055 Fix zinject list handlers The zfs_fd must be opened before calling print_all_handlers() or the ioctl() cannot be used to the zfs control device. This brings the zinject code back in sync with the Illumos implementation. Signed-off-by: Brian Behlendorf --- diff --git a/cmd/zinject/zinject.c b/cmd/zinject/zinject.c index 9ae3f9d..13d067d 100644 --- a/cmd/zinject/zinject.c +++ b/cmd/zinject/zinject.c @@ -574,6 +574,16 @@ main(int argc, char **argv) int ret; int flags = 0; + if ((g_zfs = libzfs_init()) == NULL) + return (1); + + libzfs_print_on_error(g_zfs, B_TRUE); + + if ((zfs_fd = open(ZFS_DEV, O_RDWR)) < 0) { + (void) fprintf(stderr, "failed to open ZFS device\n"); + return (1); + } + if (argc == 1) { /* * No arguments. Print the available handlers. If there are no @@ -764,16 +774,6 @@ main(int argc, char **argv) argc -= optind; argv += optind; - if ((g_zfs = libzfs_init()) == NULL) - return (1); - - libzfs_print_on_error(g_zfs, B_TRUE); - - if ((zfs_fd = open(ZFS_DEV, O_RDWR)) < 0) { - (void) fprintf(stderr, "failed to open ZFS device\n"); - return (1); - } - if (record.zi_duration != 0) record.zi_cmd = ZINJECT_IGNORED_WRITES;