Add linux-user-util topic branch.

This topic branch contains required changes to the user space
utilities to allow them to integrate cleanly with Linux.
This commit is contained in:
Brian Behlendorf 2010-05-21 10:47:59 -07:00
parent b974e4bf4d
commit 868e5de066
8 changed files with 41 additions and 54 deletions

View File

@ -1,3 +1 @@
gcc-branch zfs-branch
fix-branch
feature-branch

18
.topmsg
View File

@ -1,19 +1,7 @@
From: Brian Behlendorf <behlendorf1@llnl.gov> From: Brian Behlendorf <behlendorf1@llnl.gov>
Subject: [PATCH] zfs branch Subject: [PATCH] linux user util
Merged result of all changes which are relevant to both Solaris This topic branch contains required changes to the user space
and Linux builds of the ZFS code. These are changes where there utilities to allow them to integrate cleanly with Linux.
is a reasonable chance they will be accepted upstream.
Additionally, since this is effectively the root of the linux
ZFS tree the core linux build system is added here. This
includes autogen.sh, configure.ac, m4 macros, some scripts/*,
and makefiles for all the core ZFS components. Linux-only
features which require tweaks to the build system should appear
on the relevant topic branches. All autotools products which
result from autogen.sh are commited to the linux-configure-branch.
This branch also contains the META, ChangeLog, AUTHORS, TODO,
and README, files.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

View File

@ -2394,8 +2394,8 @@ main(int argc, char **argv)
} }
kernel_init(FREAD); kernel_init(FREAD);
g_zfs = libzfs_init(); if ((g_zfs = libzfs_init()) == NULL)
ASSERT(g_zfs != NULL); return (1);
for (c = 0; c < 256; c++) { for (c = 0; c < 256; c++) {
if (dump_all && c != 'l' && c != 'R') if (dump_all && c != 'l' && c != 'R')

View File

@ -4035,17 +4035,6 @@ main(int argc, char **argv)
opterr = 0; 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) { if ((mnttab_file = fopen(MNTTAB, "r")) == NULL) {
(void) fprintf(stderr, gettext("internal error: unable to " (void) fprintf(stderr, gettext("internal error: unable to "
"open %s\n"), MNTTAB); "open %s\n"), MNTTAB);
@ -4087,9 +4076,18 @@ main(int argc, char **argv)
/* /*
* Special case '-?' * Special case '-?'
*/ */
if (strcmp(cmdname, "-?") == 0) if ((strcmp(cmdname, "-?") == 0) ||
(strcmp(cmdname, "--help") == 0))
usage(B_TRUE); 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);
/* /*
* 'volinit' and 'volfini' do not appear in the usage message, * 'volinit' and 'volfini' do not appear in the usage message,
* so we have to special case them here. * so we have to special case them here.

View File

@ -486,19 +486,6 @@ main(int argc, char **argv)
int ret; int ret;
int flags = 0; 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) { if (argc == 1) {
/* /*
* No arguments. Print the available handlers. If there are no * No arguments. Print the available handlers. If there are no
@ -612,6 +599,16 @@ main(int argc, char **argv)
argc -= optind; argc -= optind;
argv += 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) { if (cancel != NULL) {
/* /*
* '-c' is invalid with any other options. * '-c' is invalid with any other options.

View File

@ -3921,14 +3921,6 @@ main(int argc, char **argv)
(void) setlocale(LC_ALL, ""); (void) setlocale(LC_ALL, "");
(void) textdomain(TEXT_DOMAIN); (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; opterr = 0;
/* /*
@ -3944,9 +3936,15 @@ main(int argc, char **argv)
/* /*
* Special case '-?' * Special case '-?'
*/ */
if (strcmp(cmdname, "-?") == 0) if ((strcmp(cmdname, "-?") == 0) ||
strcmp(cmdname, "--help") == 0)
usage(B_TRUE); 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); zpool_set_history_str("zpool", argc, argv, history_str);
verify(zpool_stage_history(g_zfs, history_str) == 0); verify(zpool_stage_history(g_zfs, history_str) == 0);

View File

@ -39,6 +39,7 @@
#include <sys/mntent.h> #include <sys/mntent.h>
#include <sys/mnttab.h> #include <sys/mnttab.h>
#include <sys/avl.h> #include <sys/avl.h>
#include <sys/debug.h>
#include <stddef.h> #include <stddef.h>
#include <libzfs.h> #include <libzfs.h>

View File

@ -578,6 +578,13 @@ libzfs_init(void)
} }
if ((hdl->libzfs_fd = open(ZFS_DEV, O_RDWR)) < 0) { if ((hdl->libzfs_fd = open(ZFS_DEV, O_RDWR)) < 0) {
(void) fprintf(stderr, gettext("Unable to open %s: %s.\n"),
ZFS_DEV, strerror(errno));
if (errno == ENOENT)
(void) fprintf(stderr,
gettext("Verify the ZFS module stack is "
"loaded by running '/sbin/modprobe zfs'.\n"));
free(hdl); free(hdl);
return (NULL); return (NULL);
} }