aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2010-08-26 11:57:29 -0700
committerBrian Behlendorf <[email protected]>2010-08-31 13:42:01 -0700
commit9b020fd97a3dc449a94baec028b30b1fe3c2d5bc (patch)
tree63adfe1e69722f283a5115ff431abb550f691bed /cmd
parentd603ed6c278f9c25b17ba8e75e9bce6e5d715ac0 (diff)
Add linux user util support
This topic branch contains required changes to the user space utilities to allow them to integrate cleanly with Linux. Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/zdb/zdb.c4
-rw-r--r--cmd/zfs/zfs_main.c22
-rw-r--r--cmd/zinject/zinject.c23
-rw-r--r--cmd/zpool/zpool_main.c16
4 files changed, 29 insertions, 36 deletions
diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c
index d0354809d..a5ad7feb8 100644
--- a/cmd/zdb/zdb.c
+++ b/cmd/zdb/zdb.c
@@ -3036,8 +3036,8 @@ main(int argc, char **argv)
}
kernel_init(FREAD);
- g_zfs = libzfs_init();
- ASSERT(g_zfs != NULL);
+ if ((g_zfs = libzfs_init()) == NULL)
+ return (1);
if (dump_all)
verbose = MAX(verbose, 1);
diff --git a/cmd/zfs/zfs_main.c b/cmd/zfs/zfs_main.c
index ebcec2d6e..b0e6180ea 100644
--- a/cmd/zfs/zfs_main.c
+++ b/cmd/zfs/zfs_main.c
@@ -4102,17 +4102,6 @@ main(int argc, char **argv)
opterr = 0;
- if ((g_zfs = libzfs_init()) == NULL) {
- (void) fprintf(stderr, gettext("internal error: failed to "
- "initialize ZFS library\n"));
- return (1);
- }
-
- zpool_set_history_str("zfs", argc, argv, history_str);
- verify(zpool_stage_history(g_zfs, history_str) == 0);
-
- libzfs_print_on_error(g_zfs, B_TRUE);
-
if ((mnttab_file = fopen(MNTTAB, "r")) == NULL) {
(void) fprintf(stderr, gettext("internal error: unable to "
"open %s\n"), MNTTAB);
@@ -4158,9 +4147,18 @@ main(int argc, char **argv)
/*
* Special case '-?'
*/
- if (strcmp(cmdname, "-?") == 0)
+ if ((strcmp(cmdname, "-?") == 0) ||
+ (strcmp(cmdname, "--help") == 0))
usage(B_TRUE);
+ if ((g_zfs = libzfs_init()) == NULL)
+ return (1);
+
+ zpool_set_history_str("zfs", argc, argv, history_str);
+ verify(zpool_stage_history(g_zfs, history_str) == 0);
+
+ libzfs_print_on_error(g_zfs, B_TRUE);
+
/*
* Run the appropriate command.
*/
diff --git a/cmd/zinject/zinject.c b/cmd/zinject/zinject.c
index 643d73e7f..3ad90e329 100644
--- a/cmd/zinject/zinject.c
+++ b/cmd/zinject/zinject.c
@@ -573,19 +573,6 @@ main(int argc, char **argv)
int ret;
int flags = 0;
- if ((g_zfs = libzfs_init()) == NULL) {
- (void) fprintf(stderr, "internal error: failed to "
- "initialize ZFS library\n");
- 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
@@ -765,6 +752,16 @@ 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 (cancel != NULL) {
/*
* '-c' is invalid with any other options.
diff --git a/cmd/zpool/zpool_main.c b/cmd/zpool/zpool_main.c
index b1b71acf8..3859bf737 100644
--- a/cmd/zpool/zpool_main.c
+++ b/cmd/zpool/zpool_main.c
@@ -4712,14 +4712,6 @@ main(int argc, char **argv)
(void) setlocale(LC_ALL, "");
(void) textdomain(TEXT_DOMAIN);
- if ((g_zfs = libzfs_init()) == NULL) {
- (void) fprintf(stderr, gettext("internal error: failed to "
- "initialize ZFS library\n"));
- return (1);
- }
-
- libzfs_print_on_error(g_zfs, B_TRUE);
-
opterr = 0;
/*
@@ -4735,9 +4727,15 @@ main(int argc, char **argv)
/*
* Special case '-?'
*/
- if (strcmp(cmdname, "-?") == 0)
+ if ((strcmp(cmdname, "-?") == 0) ||
+ strcmp(cmdname, "--help") == 0)
usage(B_TRUE);
+ if ((g_zfs = libzfs_init()) == NULL)
+ return (1);
+
+ libzfs_print_on_error(g_zfs, B_TRUE);
+
zpool_set_history_str("zpool", argc, argv, history_str);
verify(zpool_stage_history(g_zfs, history_str) == 0);