aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Macy <[email protected]>2019-10-02 10:39:48 -0700
committerBrian Behlendorf <[email protected]>2019-10-02 10:39:48 -0700
commitd31277abb1db51dece836dd47628ca42c07e528c (patch)
treeb2635f2c39d2315d21af445522203dffbae57851
parent6360e2779e47f4bf2233071b427ad522eca9bdd4 (diff)
OpenZFS restructuring - libspl
Factor Linux specific pieces out of libspl. Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Sean Eric Fagan <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Matt Macy <[email protected]> Closes #9336
-rw-r--r--cmd/mount_zfs/Makefile.am4
-rw-r--r--cmd/raidz_test/Makefile.am4
-rw-r--r--cmd/zdb/Makefile.am4
-rw-r--r--cmd/zed/Makefile.am6
-rw-r--r--cmd/zed/agents/zfs_mod.c1
-rw-r--r--cmd/zfs/Makefile.am4
-rw-r--r--cmd/zfs/zfs_main.c20
-rw-r--r--cmd/zhack/Makefile.am4
-rw-r--r--cmd/zinject/Makefile.am4
-rw-r--r--cmd/zinject/translate.c32
-rw-r--r--cmd/zpool/Makefile.am5
-rw-r--r--cmd/zpool/os/linux/zpool_vdev_os.c1
-rw-r--r--cmd/zpool/zpool_vdev.c1
-rw-r--r--cmd/zstreamdump/Makefile.am4
-rw-r--r--cmd/ztest/Makefile.am4
-rw-r--r--cmd/zvol_id/Makefile.am4
-rw-r--r--config/Rules.am11
-rw-r--r--configure.ac3
-rw-r--r--lib/libavl/Makefile.am4
-rw-r--r--lib/libefi/Makefile.am4
-rw-r--r--lib/libicp/Makefile.am5
-rw-r--r--lib/libnvpair/Makefile.am4
-rw-r--r--lib/libshare/Makefile.am4
-rw-r--r--lib/libspl/Makefile.am13
-rw-r--r--lib/libspl/asm-generic/Makefile.am3
-rw-r--r--lib/libspl/include/Makefile.am3
-rw-r--r--lib/libspl/include/devid.h32
-rw-r--r--lib/libspl/include/os/Makefile.am3
-rw-r--r--lib/libspl/include/os/linux/Makefile.am1
-rw-r--r--lib/libspl/include/os/linux/sys/Makefile.am10
-rw-r--r--lib/libspl/include/os/linux/sys/byteorder.h (renamed from lib/libspl/include/sys/byteorder.h)0
-rw-r--r--lib/libspl/include/os/linux/sys/file.h (renamed from lib/libspl/include/sys/file.h)0
-rw-r--r--lib/libspl/include/os/linux/sys/mnttab.h (renamed from lib/libspl/include/sys/mnttab.h)7
-rw-r--r--lib/libspl/include/os/linux/sys/mount.h (renamed from lib/libspl/include/sys/mount.h)0
-rw-r--r--lib/libspl/include/os/linux/sys/param.h (renamed from lib/libspl/include/sys/param.h)0
-rw-r--r--lib/libspl/include/os/linux/sys/stat.h (renamed from lib/libspl/include/sys/stat.h)0
-rw-r--r--lib/libspl/include/os/linux/sys/sysmacros.h (renamed from lib/libspl/include/sys/sysmacros.h)0
-rw-r--r--lib/libspl/include/os/linux/sys/uio.h (renamed from lib/libspl/include/sys/uio.h)6
-rw-r--r--lib/libspl/include/sys/Makefile.am9
-rw-r--r--lib/libspl/os/linux/getexecname.c (renamed from lib/libspl/getexecname.c)0
-rw-r--r--lib/libspl/os/linux/gethostid.c (renamed from lib/libspl/gethostid.c)0
-rw-r--r--lib/libspl/os/linux/getmntany.c (renamed from lib/libspl/getmntany.c)67
-rw-r--r--lib/libtpool/Makefile.am4
-rw-r--r--lib/libunicode/Makefile.am4
-rw-r--r--lib/libuutil/Makefile.am4
-rw-r--r--lib/libzfs/Makefile.am5
-rw-r--r--lib/libzfs/libzfs_import.c1
-rw-r--r--lib/libzfs/libzfs_pool.c129
-rw-r--r--lib/libzfs/libzfs_util.c15
-rw-r--r--lib/libzfs_core/Makefile.am4
-rw-r--r--lib/libzpool/Makefile.am4
-rw-r--r--lib/libzpool/kernel.c60
-rw-r--r--lib/libzutil/Makefile.am4
-rw-r--r--lib/libzutil/zutil_import.c1
-rw-r--r--tests/zfs-tests/cmd/file_write/file_write.c4
-rw-r--r--tests/zfs-tests/cmd/largest_file/largest_file.c5
-rw-r--r--tests/zfs-tests/cmd/libzfs_input_check/Makefile.am4
-rw-r--r--tests/zfs-tests/cmd/mkbusy/mkbusy.c2
-rw-r--r--tests/zfs-tests/cmd/mkfile/mkfile.c8
-rw-r--r--tests/zfs-tests/cmd/nvlist_to_lua/Makefile.am4
-rw-r--r--tests/zfs-tests/tests/functional/checksum/edonr_test.c4
-rw-r--r--tests/zfs-tests/tests/functional/checksum/sha2_test.c3
-rw-r--r--tests/zfs-tests/tests/functional/checksum/skein_test.c4
-rw-r--r--tests/zfs-tests/tests/functional/hkdf/Makefile.am2
-rw-r--r--tests/zfs-tests/tests/functional/libzfs/Makefile.am4
65 files changed, 127 insertions, 443 deletions
diff --git a/cmd/mount_zfs/Makefile.am b/cmd/mount_zfs/Makefile.am
index 7adedd63b..1ffeef7fe 100644
--- a/cmd/mount_zfs/Makefile.am
+++ b/cmd/mount_zfs/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
#
# Ignore the prefix for the mount helper. It must be installed in /sbin/
# because this path is hardcoded in the mount(8) for security reasons.
diff --git a/cmd/raidz_test/Makefile.am b/cmd/raidz_test/Makefile.am
index a394a0dde..c04d101b8 100644
--- a/cmd/raidz_test/Makefile.am
+++ b/cmd/raidz_test/Makefile.am
@@ -6,10 +6,6 @@ AM_CFLAGS += $(FRAME_LARGER_THAN)
# Unconditionally enable ASSERTs
AM_CPPFLAGS += -DDEBUG -UNDEBUG
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
bin_PROGRAMS = raidz_test
raidz_test_SOURCES = \
diff --git a/cmd/zdb/Makefile.am b/cmd/zdb/Makefile.am
index 1fa7ec651..07c1d068b 100644
--- a/cmd/zdb/Makefile.am
+++ b/cmd/zdb/Makefile.am
@@ -3,10 +3,6 @@ include $(top_srcdir)/config/Rules.am
# Unconditionally enable debugging for zdb
AM_CPPFLAGS += -DDEBUG -UNDEBUG
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
sbin_PROGRAMS = zdb
zdb_SOURCES = \
diff --git a/cmd/zed/Makefile.am b/cmd/zed/Makefile.am
index fb479f9b5..40c0834af 100644
--- a/cmd/zed/Makefile.am
+++ b/cmd/zed/Makefile.am
@@ -1,10 +1,6 @@
-SUBDIRS = zed.d
-
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
+SUBDIRS = zed.d
sbin_PROGRAMS = zed
diff --git a/cmd/zed/agents/zfs_mod.c b/cmd/zed/agents/zfs_mod.c
index d980794d0..959ed24cd 100644
--- a/cmd/zed/agents/zfs_mod.c
+++ b/cmd/zed/agents/zfs_mod.c
@@ -69,7 +69,6 @@
*/
#include <ctype.h>
-#include <devid.h>
#include <fcntl.h>
#include <libnvpair.h>
#include <libzfs.h>
diff --git a/cmd/zfs/Makefile.am b/cmd/zfs/Makefile.am
index 8b6ddaa20..49ad6f21f 100644
--- a/cmd/zfs/Makefile.am
+++ b/cmd/zfs/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
sbin_PROGRAMS = zfs
zfs_SOURCES = \
diff --git a/cmd/zfs/zfs_main.c b/cmd/zfs/zfs_main.c
index 62c5bcca4..9597e2790 100644
--- a/cmd/zfs/zfs_main.c
+++ b/cmd/zfs/zfs_main.c
@@ -6969,18 +6969,6 @@ unshare_unmount_path(int op, char *path, int flags, boolean_t is_manual)
const char *cmdname = (op == OP_SHARE) ? "unshare" : "unmount";
ino_t path_inode;
- /*
- * Search for the path in /proc/self/mounts. Rather than looking for the
- * specific path, which can be fooled by non-standard paths (i.e. ".."
- * or "//"), we stat() the path and search for the corresponding
- * (major,minor) device pair.
- */
- if (stat64(path, &statbuf) != 0) {
- (void) fprintf(stderr, gettext("cannot %s '%s': %s\n"),
- cmdname, path, strerror(errno));
- return (1);
- }
- path_inode = statbuf.st_ino;
/*
* Search for the given (major,minor) pair in the mount table.
@@ -6990,12 +6978,7 @@ unshare_unmount_path(int op, char *path, int flags, boolean_t is_manual)
if (freopen(MNTTAB, "r", mnttab_file) == NULL)
return (ENOENT);
- while ((ret = getextmntent(mnttab_file, &entry, 0)) == 0) {
- if (entry.mnt_major == major(statbuf.st_dev) &&
- entry.mnt_minor == minor(statbuf.st_dev))
- break;
- }
- if (ret != 0) {
+ if (getextmntent(path, &entry, &statbuf) != 0) {
if (op == OP_SHARE) {
(void) fprintf(stderr, gettext("cannot %s '%s': not "
"currently mounted\n"), cmdname, path);
@@ -7008,6 +6991,7 @@ unshare_unmount_path(int op, char *path, int flags, boolean_t is_manual)
strerror(errno));
return (ret != 0);
}
+ path_inode = statbuf.st_ino;
if (strcmp(entry.mnt_fstype, MNTTYPE_ZFS) != 0) {
(void) fprintf(stderr, gettext("cannot %s '%s': not a ZFS "
diff --git a/cmd/zhack/Makefile.am b/cmd/zhack/Makefile.am
index 6e3e706ec..ac4b6aadb 100644
--- a/cmd/zhack/Makefile.am
+++ b/cmd/zhack/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
sbin_PROGRAMS = zhack
zhack_SOURCES = \
diff --git a/cmd/zinject/Makefile.am b/cmd/zinject/Makefile.am
index ab7f4de12..71b48255e 100644
--- a/cmd/zinject/Makefile.am
+++ b/cmd/zinject/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
sbin_PROGRAMS = zinject
zinject_SOURCES = \
diff --git a/cmd/zinject/translate.c b/cmd/zinject/translate.c
index d4795d071..8542d37c5 100644
--- a/cmd/zinject/translate.c
+++ b/cmd/zinject/translate.c
@@ -85,8 +85,6 @@ parse_pathname(const char *inpath, char *dataset, char *relpath,
struct stat64 *statbuf)
{
struct extmnttab mp;
- FILE *fp;
- int match;
const char *rel;
char fullpath[MAXPATHLEN];
@@ -99,35 +97,7 @@ parse_pathname(const char *inpath, char *dataset, char *relpath,
return (-1);
}
- if (strlen(fullpath) >= MAXPATHLEN) {
- (void) fprintf(stderr, "invalid object; pathname too long\n");
- return (-1);
- }
-
- if (stat64(fullpath, statbuf) != 0) {
- (void) fprintf(stderr, "cannot open '%s': %s\n",
- fullpath, strerror(errno));
- return (-1);
- }
-
-#ifdef HAVE_SETMNTENT
- if ((fp = setmntent(MNTTAB, "r")) == NULL) {
-#else
- if ((fp = fopen(MNTTAB, "r")) == NULL) {
-#endif
- (void) fprintf(stderr, "cannot open %s\n", MNTTAB);
- return (-1);
- }
-
- match = 0;
- while (getextmntent(fp, &mp, sizeof (mp)) == 0) {
- if (makedev(mp.mnt_major, mp.mnt_minor) == statbuf->st_dev) {
- match = 1;
- break;
- }
- }
-
- if (!match) {
+ if (getextmntent(fullpath, &mp, statbuf) != 0) {
(void) fprintf(stderr, "cannot find mountpoint for '%s'\n",
fullpath);
return (-1);
diff --git a/cmd/zpool/Makefile.am b/cmd/zpool/Makefile.am
index 42b19ef23..b9e221c1f 100644
--- a/cmd/zpool/Makefile.am
+++ b/cmd/zpool/Makefile.am
@@ -1,9 +1,6 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include \
- -I.
+DEFAULT_INCLUDES += -I.
sbin_PROGRAMS = zpool
diff --git a/cmd/zpool/os/linux/zpool_vdev_os.c b/cmd/zpool/os/linux/zpool_vdev_os.c
index 1aaad974e..d087c4c14 100644
--- a/cmd/zpool/os/linux/zpool_vdev_os.c
+++ b/cmd/zpool/os/linux/zpool_vdev_os.c
@@ -64,7 +64,6 @@
#include <assert.h>
#include <ctype.h>
-#include <devid.h>
#include <errno.h>
#include <fcntl.h>
#include <libintl.h>
diff --git a/cmd/zpool/zpool_vdev.c b/cmd/zpool/zpool_vdev.c
index af48c6a71..bb49211dc 100644
--- a/cmd/zpool/zpool_vdev.c
+++ b/cmd/zpool/zpool_vdev.c
@@ -64,7 +64,6 @@
#include <assert.h>
#include <ctype.h>
-#include <devid.h>
#include <errno.h>
#include <fcntl.h>
#include <libintl.h>
diff --git a/cmd/zstreamdump/Makefile.am b/cmd/zstreamdump/Makefile.am
index f80b5018e..1f5cd4d9f 100644
--- a/cmd/zstreamdump/Makefile.am
+++ b/cmd/zstreamdump/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
sbin_PROGRAMS = zstreamdump
zstreamdump_SOURCES = \
diff --git a/cmd/ztest/Makefile.am b/cmd/ztest/Makefile.am
index 55af41680..db9a104c0 100644
--- a/cmd/ztest/Makefile.am
+++ b/cmd/ztest/Makefile.am
@@ -9,10 +9,6 @@ AM_CFLAGS += $(FRAME_LARGER_THAN)
# Unconditionally enable ASSERTs
AM_CPPFLAGS += -DDEBUG -UNDEBUG
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
sbin_PROGRAMS = ztest
ztest_SOURCES = \
diff --git a/cmd/zvol_id/Makefile.am b/cmd/zvol_id/Makefile.am
index d131c6386..a58487508 100644
--- a/cmd/zvol_id/Makefile.am
+++ b/cmd/zvol_id/Makefile.am
@@ -4,10 +4,6 @@ include $(top_srcdir)/config/Rules.am
# removed once https://github.com/zfsonlinux/zfs/issues/569 is resolved.
AM_CFLAGS += -fno-stack-protector
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
udev_PROGRAMS = zvol_id
zvol_id_SOURCES = \
diff --git a/config/Rules.am b/config/Rules.am
index 1e569d341..83fbf4ca0 100644
--- a/config/Rules.am
+++ b/config/Rules.am
@@ -3,7 +3,16 @@
# should include these rules and override or extend them as needed.
#
-DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h
+DEFAULT_INCLUDES = \
+ -include ${top_builddir}/zfs_config.h \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/module/icp/include \
+ -I$(top_srcdir)/lib/libspl/include
+
+if BUILD_LINUX
+DEFAULT_INCLUDES += \
+ -I$(top_srcdir)/lib/libspl/include/os/linux
+endif
AM_LIBTOOLFLAGS = --silent
diff --git a/configure.ac b/configure.ac
index 444f86a6b..8d75b2ec8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,6 +86,9 @@ AC_CONFIG_FILES([
lib/libspl/include/Makefile
lib/libspl/include/ia32/Makefile
lib/libspl/include/ia32/sys/Makefile
+ lib/libspl/include/os/Makefile
+ lib/libspl/include/os/linux/Makefile
+ lib/libspl/include/os/linux/sys/Makefile
lib/libspl/include/rpc/Makefile
lib/libspl/include/sys/Makefile
lib/libspl/include/sys/dktp/Makefile
diff --git a/lib/libavl/Makefile.am b/lib/libavl/Makefile.am
index 82b30bd80..618cef1e1 100644
--- a/lib/libavl/Makefile.am
+++ b/lib/libavl/Makefile.am
@@ -5,10 +5,6 @@ VPATH = $(top_srcdir)/module/avl/
# Includes kernel code, generate warnings for large stack frames
AM_CFLAGS += $(FRAME_LARGER_THAN)
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
noinst_LTLIBRARIES = libavl.la
USER_C =
diff --git a/lib/libefi/Makefile.am b/lib/libefi/Makefile.am
index 9f69e4601..73c817192 100644
--- a/lib/libefi/Makefile.am
+++ b/lib/libefi/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
noinst_LTLIBRARIES = libefi.la
USER_C = \
diff --git a/lib/libicp/Makefile.am b/lib/libicp/Makefile.am
index e9f22cd70..8b6c41771 100644
--- a/lib/libicp/Makefile.am
+++ b/lib/libicp/Makefile.am
@@ -7,11 +7,6 @@ VPATH = \
# Includes kernel code, generate warnings for large stack frames
AM_CFLAGS += $(FRAME_LARGER_THAN)
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/module/icp/include \
- -I$(top_srcdir)/lib/libspl/include
-
noinst_LTLIBRARIES = libicp.la
if TARGET_ASM_X86_64
diff --git a/lib/libnvpair/Makefile.am b/lib/libnvpair/Makefile.am
index 6d59d7bfc..6626b6d05 100644
--- a/lib/libnvpair/Makefile.am
+++ b/lib/libnvpair/Makefile.am
@@ -8,10 +8,6 @@ VPATH = \
# and required CFLAGS for libtirpc
AM_CFLAGS += $(FRAME_LARGER_THAN) $(LIBTIRPC_CFLAGS)
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
lib_LTLIBRARIES = libnvpair.la
USER_C = \
diff --git a/lib/libshare/Makefile.am b/lib/libshare/Makefile.am
index 462e333ff..b082d992b 100644
--- a/lib/libshare/Makefile.am
+++ b/lib/libshare/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
noinst_LTLIBRARIES = libshare.la
USER_C = \
diff --git a/lib/libspl/Makefile.am b/lib/libspl/Makefile.am
index cd74676dd..313760175 100644
--- a/lib/libspl/Makefile.am
+++ b/lib/libspl/Makefile.am
@@ -7,9 +7,6 @@ VPATH = \
SUBDIRS = include $(TARGET_ASM_DIR)
DIST_SUBDIRS = include asm-generic asm-i386 asm-x86_64
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/lib/libspl/include
-
AM_CFLAGS += $(LIBTIRPC_CFLAGS)
AM_CCASFLAGS = \
@@ -18,9 +15,6 @@ AM_CCASFLAGS = \
noinst_LTLIBRARIES = libspl.la
USER_C = \
- getexecname.c \
- gethostid.c \
- getmntany.c \
list.c \
mkdirp.c \
page.c \
@@ -31,6 +25,13 @@ USER_C = \
include/sys/list.h \
include/sys/list_impl.h
+if BUILD_LINUX
+USER_C += \
+ os/linux/getexecname.c \
+ os/linux/gethostid.c \
+ os/linux/getmntany.c
+endif
+
USER_ASM = atomic.S
nodist_libspl_la_SOURCES = \
diff --git a/lib/libspl/asm-generic/Makefile.am b/lib/libspl/asm-generic/Makefile.am
index 17fe501fa..396823160 100644
--- a/lib/libspl/asm-generic/Makefile.am
+++ b/lib/libspl/asm-generic/Makefile.am
@@ -1,8 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/lib/libspl/include
-
atomic_SOURCE = atomic.c
atomic_ASM = atomic.S
diff --git a/lib/libspl/include/Makefile.am b/lib/libspl/include/Makefile.am
index 842a8fbb3..2fd0c15ff 100644
--- a/lib/libspl/include/Makefile.am
+++ b/lib/libspl/include/Makefile.am
@@ -1,10 +1,9 @@
-SUBDIRS = ia32 rpc sys util
+SUBDIRS = ia32 rpc sys util os
libspldir = $(includedir)/libspl
libspl_HEADERS = \
$(top_srcdir)/lib/libspl/include/assert.h \
$(top_srcdir)/lib/libspl/include/atomic.h \
- $(top_srcdir)/lib/libspl/include/devid.h \
$(top_srcdir)/lib/libspl/include/libdevinfo.h \
$(top_srcdir)/lib/libspl/include/libgen.h \
$(top_srcdir)/lib/libspl/include/libshare.h \
diff --git a/lib/libspl/include/devid.h b/lib/libspl/include/devid.h
deleted file mode 100644
index 8e483281a..000000000
--- a/lib/libspl/include/devid.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _LIBSPL_DEVID_H
-#define _LIBSPL_DEVID_H
-
-#include <sys/types.h>
-
-#endif
diff --git a/lib/libspl/include/os/Makefile.am b/lib/libspl/include/os/Makefile.am
new file mode 100644
index 000000000..09c0beec4
--- /dev/null
+++ b/lib/libspl/include/os/Makefile.am
@@ -0,0 +1,3 @@
+if BUILD_LINUX
+SUBDIRS = linux
+endif
diff --git a/lib/libspl/include/os/linux/Makefile.am b/lib/libspl/include/os/linux/Makefile.am
new file mode 100644
index 000000000..081839c48
--- /dev/null
+++ b/lib/libspl/include/os/linux/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = sys
diff --git a/lib/libspl/include/os/linux/sys/Makefile.am b/lib/libspl/include/os/linux/sys/Makefile.am
new file mode 100644
index 000000000..c11732cc1
--- /dev/null
+++ b/lib/libspl/include/os/linux/sys/Makefile.am
@@ -0,0 +1,10 @@
+libspldir = $(includedir)/libspl/sys
+libspl_HEADERS = \
+ $(top_srcdir)/lib/libspl/include/os/linux/sys/byteorder.h \
+ $(top_srcdir)/lib/libspl/include/os/linux/sys/file.h \
+ $(top_srcdir)/lib/libspl/include/os/linux/sys/mnttab.h \
+ $(top_srcdir)/lib/libspl/include/os/linux/sys/mount.h \
+ $(top_srcdir)/lib/libspl/include/os/linux/sys/param.h \
+ $(top_srcdir)/lib/libspl/include/os/linux/sys/stat.h \
+ $(top_srcdir)/lib/libspl/include/os/linux/sys/sysmacros.h \
+ $(top_srcdir)/lib/libspl/include/os/linux/sys/uio.h
diff --git a/lib/libspl/include/sys/byteorder.h b/lib/libspl/include/os/linux/sys/byteorder.h
index 72d40b164..72d40b164 100644
--- a/lib/libspl/include/sys/byteorder.h
+++ b/lib/libspl/include/os/linux/sys/byteorder.h
diff --git a/lib/libspl/include/sys/file.h b/lib/libspl/include/os/linux/sys/file.h
index e0752ac25..e0752ac25 100644
--- a/lib/libspl/include/sys/file.h
+++ b/lib/libspl/include/os/linux/sys/file.h
diff --git a/lib/libspl/include/sys/mnttab.h b/lib/libspl/include/os/linux/sys/mnttab.h
index 026a8fa7b..7b30bf1d5 100644
--- a/lib/libspl/include/sys/mnttab.h
+++ b/lib/libspl/include/os/linux/sys/mnttab.h
@@ -67,10 +67,13 @@ struct extmnttab {
uint_t mnt_minor;
};
+struct stat64;
+struct statfs;
+
extern int getmntany(FILE *fp, struct mnttab *mp, struct mnttab *mpref);
extern int _sol_getmntent(FILE *fp, struct mnttab *mp);
-extern int getextmntent(FILE *fp, struct extmnttab *mp, int len);
-
+extern int getextmntent(const char *path, struct extmnttab *mp,
+ struct stat64 *statbuf);
static inline char *_sol_hasmntopt(struct mnttab *mnt, char *opt)
{
struct mntent mnt_new;
diff --git a/lib/libspl/include/sys/mount.h b/lib/libspl/include/os/linux/sys/mount.h
index d7c6f750e..d7c6f750e 100644
--- a/lib/libspl/include/sys/mount.h
+++ b/lib/libspl/include/os/linux/sys/mount.h
diff --git a/lib/libspl/include/sys/param.h b/lib/libspl/include/os/linux/sys/param.h
index 26335187f..26335187f 100644
--- a/lib/libspl/include/sys/param.h
+++ b/lib/libspl/include/os/linux/sys/param.h
diff --git a/lib/libspl/include/sys/stat.h b/lib/libspl/include/os/linux/sys/stat.h
index 3e8d27e4c..3e8d27e4c 100644
--- a/lib/libspl/include/sys/stat.h
+++ b/lib/libspl/include/os/linux/sys/stat.h
diff --git a/lib/libspl/include/sys/sysmacros.h b/lib/libspl/include/os/linux/sys/sysmacros.h
index 22fcb04b9..22fcb04b9 100644
--- a/lib/libspl/include/sys/sysmacros.h
+++ b/lib/libspl/include/os/linux/sys/sysmacros.h
diff --git a/lib/libspl/include/sys/uio.h b/lib/libspl/include/os/linux/sys/uio.h
index 91ee3b3fd..0b85af66d 100644
--- a/lib/libspl/include/sys/uio.h
+++ b/lib/libspl/include/os/linux/sys/uio.h
@@ -40,8 +40,10 @@
#ifndef _LIBSPL_SYS_UIO_H
#define _LIBSPL_SYS_UIO_H
+#include <sys/types.h>
#include_next <sys/uio.h>
+#include <stdint.h>
typedef struct iovec iovec_t;
typedef enum uio_rw {
@@ -58,11 +60,11 @@ typedef enum uio_seg {
typedef struct uio {
struct iovec *uio_iov; /* pointer to array of iovecs */
int uio_iovcnt; /* number of iovecs */
- offset_t uio_loffset; /* file offset */
+ loff_t uio_loffset; /* file offset */
uio_seg_t uio_segflg; /* address space (kernel or user) */
uint16_t uio_fmode; /* file mode flags */
uint16_t uio_extflg; /* extended flags */
- offset_t uio_limit; /* u-limit (maximum byte offset) */
+ loff_t uio_limit; /* u-limit (maximum byte offset) */
ssize_t uio_resid; /* residual count */
} uio_t;
diff --git a/lib/libspl/include/sys/Makefile.am b/lib/libspl/include/sys/Makefile.am
index 60ddb7881..54aece129 100644
--- a/lib/libspl/include/sys/Makefile.am
+++ b/lib/libspl/include/sys/Makefile.am
@@ -5,7 +5,6 @@ libspl_HEADERS = \
$(top_srcdir)/lib/libspl/include/sys/acl.h \
$(top_srcdir)/lib/libspl/include/sys/acl_impl.h \
$(top_srcdir)/lib/libspl/include/sys/bitmap.h \
- $(top_srcdir)/lib/libspl/include/sys/byteorder.h \
$(top_srcdir)/lib/libspl/include/sys/callb.h \
$(top_srcdir)/lib/libspl/include/sys/cmn_err.h \
$(top_srcdir)/lib/libspl/include/sys/cred.h \
@@ -14,7 +13,6 @@ libspl_HEADERS = \
$(top_srcdir)/lib/libspl/include/sys/dklabel.h \
$(top_srcdir)/lib/libspl/include/sys/errno.h \
$(top_srcdir)/lib/libspl/include/sys/feature_tests.h \
- $(top_srcdir)/lib/libspl/include/sys/file.h \
$(top_srcdir)/lib/libspl/include/sys/int_limits.h \
$(top_srcdir)/lib/libspl/include/sys/int_types.h \
$(top_srcdir)/lib/libspl/include/sys/inttypes.h \
@@ -25,29 +23,22 @@ libspl_HEADERS = \
$(top_srcdir)/lib/libspl/include/sys/list_impl.h \
$(top_srcdir)/lib/libspl/include/sys/mhd.h \
$(top_srcdir)/lib/libspl/include/sys/mkdev.h \
- $(top_srcdir)/lib/libspl/include/sys/mnttab.h \
- $(top_srcdir)/lib/libspl/include/sys/mount.h \
- $(top_srcdir)/lib/libspl/include/sys/param.h \
$(top_srcdir)/lib/libspl/include/sys/policy.h \
$(top_srcdir)/lib/libspl/include/sys/poll.h \
$(top_srcdir)/lib/libspl/include/sys/priv.h \
$(top_srcdir)/lib/libspl/include/sys/processor.h \
- $(top_srcdir)/lib/libspl/include/sys/signal.h \
$(top_srcdir)/lib/libspl/include/sys/simd.h \
$(top_srcdir)/lib/libspl/include/sys/stack.h \
- $(top_srcdir)/lib/libspl/include/sys/stat.h \
$(top_srcdir)/lib/libspl/include/sys/stdtypes.h \
$(top_srcdir)/lib/libspl/include/sys/strings.h \
$(top_srcdir)/lib/libspl/include/sys/stropts.h \
$(top_srcdir)/lib/libspl/include/sys/sunddi.h \
- $(top_srcdir)/lib/libspl/include/sys/sysmacros.h \
$(top_srcdir)/lib/libspl/include/sys/systeminfo.h \
$(top_srcdir)/lib/libspl/include/sys/time.h \
$(top_srcdir)/lib/libspl/include/sys/trace_defs.h \
$(top_srcdir)/lib/libspl/include/sys/types32.h \
$(top_srcdir)/lib/libspl/include/sys/types.h \
$(top_srcdir)/lib/libspl/include/sys/tzfile.h \
- $(top_srcdir)/lib/libspl/include/sys/uio.h \
$(top_srcdir)/lib/libspl/include/sys/va_list.h \
$(top_srcdir)/lib/libspl/include/sys/varargs.h \
$(top_srcdir)/lib/libspl/include/sys/vnode.h \
diff --git a/lib/libspl/getexecname.c b/lib/libspl/os/linux/getexecname.c
index c21a110ad..c21a110ad 100644
--- a/lib/libspl/getexecname.c
+++ b/lib/libspl/os/linux/getexecname.c
diff --git a/lib/libspl/gethostid.c b/lib/libspl/os/linux/gethostid.c
index 1eb93f441..1eb93f441 100644
--- a/lib/libspl/gethostid.c
+++ b/lib/libspl/os/linux/gethostid.c
diff --git a/lib/libspl/getmntany.c b/lib/libspl/os/linux/getmntany.c
index 43e523e4a..f42fcc047 100644
--- a/lib/libspl/getmntany.c
+++ b/lib/libspl/os/linux/getmntany.c
@@ -31,6 +31,7 @@
#include <stdio.h>
#include <string.h>
#include <mntent.h>
+#include <sys/errno.h>
#include <sys/mnttab.h>
#include <sys/types.h>
@@ -81,8 +82,8 @@ _sol_getmntent(FILE *fp, struct mnttab *mgetp)
return (MNT_TOOLONG);
}
-int
-getextmntent(FILE *fp, struct extmnttab *mp, int len)
+static int
+getextmntent_impl(FILE *fp, struct extmnttab *mp, int len)
{
int ret;
struct stat64 st;
@@ -100,3 +101,65 @@ getextmntent(FILE *fp, struct extmnttab *mp, int len)
return (ret);
}
+
+int
+getextmntent(const char *path, struct extmnttab *entry, struct stat64 *statbuf)
+{
+ struct stat64 st;
+ FILE *fp;
+ int match;
+
+ if (strlen(path) >= MAXPATHLEN) {
+ (void) fprintf(stderr, "invalid object; pathname too long\n");
+ return (-1);
+ }
+
+ /*
+ * Search for the path in /proc/self/mounts. Rather than looking for the
+ * specific path, which can be fooled by non-standard paths (i.e. ".."
+ * or "//"), we stat() the path and search for the corresponding
+ * (major,minor) device pair.
+ */
+ if (stat64(path, statbuf) != 0) {
+ (void) fprintf(stderr, "cannot open '%s': %s\n",
+ path, strerror(errno));
+ return (-1);
+ }
+
+
+#ifdef HAVE_SETMNTENT
+ if ((fp = setmntent(MNTTAB, "r")) == NULL) {
+#else
+ if ((fp = fopen(MNTTAB, "r")) == NULL) {
+#endif
+ (void) fprintf(stderr, "cannot open %s\n", MNTTAB);
+ return (-1);
+ }
+
+ /*
+ * Search for the given (major,minor) pair in the mount table.
+ */
+
+ match = 0;
+ while (getextmntent_impl(fp, entry, sizeof (*entry)) == 0) {
+ if (makedev(entry->mnt_major, entry->mnt_minor) ==
+ statbuf->st_dev) {
+ match = 1;
+ break;
+ }
+ }
+
+ if (!match) {
+ (void) fprintf(stderr, "cannot find mountpoint for '%s'\n",
+ path);
+ return (-1);
+ }
+
+ if (stat64(entry->mnt_mountp, &st) != 0) {
+ entry->mnt_major = 0;
+ entry->mnt_minor = 0;
+ return (-1);
+ }
+
+ return (0);
+}
diff --git a/lib/libtpool/Makefile.am b/lib/libtpool/Makefile.am
index 586eec2ec..773469947 100644
--- a/lib/libtpool/Makefile.am
+++ b/lib/libtpool/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
noinst_LTLIBRARIES = libtpool.la
USER_C = \
diff --git a/lib/libunicode/Makefile.am b/lib/libunicode/Makefile.am
index 0a4734c03..ea9439d13 100644
--- a/lib/libunicode/Makefile.am
+++ b/lib/libunicode/Makefile.am
@@ -5,10 +5,6 @@ VPATH = $(top_srcdir)/module/unicode
# Includes kernel code, generate warnings for large stack frames
AM_CFLAGS += $(FRAME_LARGER_THAN)
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
noinst_LTLIBRARIES = libunicode.la
USER_C =
diff --git a/lib/libuutil/Makefile.am b/lib/libuutil/Makefile.am
index 09eef792a..c61b66fce 100644
--- a/lib/libuutil/Makefile.am
+++ b/lib/libuutil/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
lib_LTLIBRARIES = libuutil.la
USER_C = \
diff --git a/lib/libzfs/Makefile.am b/lib/libzfs/Makefile.am
index 421970413..3d14a77c1 100644
--- a/lib/libzfs/Makefile.am
+++ b/lib/libzfs/Makefile.am
@@ -11,11 +11,6 @@ AM_CFLAGS += $(NO_UNUSED_BUT_SET_VARIABLE)
libzfs_pcdir = $(datarootdir)/pkgconfig
libzfs_pc_DATA = libzfs.pc libzfs_core.pc
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/module/icp/include \
- -I$(top_srcdir)/lib/libspl/include
-
lib_LTLIBRARIES = libzfs.la
USER_C = \
diff --git a/lib/libzfs/libzfs_import.c b/lib/libzfs/libzfs_import.c
index 3d7a0bf12..747977403 100644
--- a/lib/libzfs/libzfs_import.c
+++ b/lib/libzfs/libzfs_import.c
@@ -26,7 +26,6 @@
* Copyright (c) 2016, Intel Corporation.
*/
-#include <devid.h>
#include <errno.h>
#include <libintl.h>
#include <libgen.h>
diff --git a/lib/libzfs/libzfs_pool.c b/lib/libzfs/libzfs_pool.c
index 00f69b26d..2641b1152 100644
--- a/lib/libzfs/libzfs_pool.c
+++ b/lib/libzfs/libzfs_pool.c
@@ -31,7 +31,6 @@
*/
#include <errno.h>
-#include <devid.h>
#include <libintl.h>
#include <stdio.h>
#include <stdlib.h>
@@ -3884,86 +3883,6 @@ zpool_sync_one(zpool_handle_t *zhp, void *data)
return (0);
}
-#if defined(__sun__) || defined(__sun)
-/*
- * Convert from a devid string to a path.
- */
-static char *
-devid_to_path(char *devid_str)
-{
- ddi_devid_t devid;
- char *minor;
- char *path;
- devid_nmlist_t *list = NULL;
- int ret;
-
- if (devid_str_decode(devid_str, &devid, &minor) != 0)
- return (NULL);
-
- ret = devid_deviceid_to_nmlist("/dev", devid, minor, &list);
-
- devid_str_free(minor);
- devid_free(devid);
-
- if (ret != 0)
- return (NULL);
-
- /*
- * In a case the strdup() fails, we will just return NULL below.
- */
- path = strdup(list[0].devname);
-
- devid_free_nmlist(list);
-
- return (path);
-}
-
-/*
- * Convert from a path to a devid string.
- */
-static char *
-path_to_devid(const char *path)
-{
- int fd;
- ddi_devid_t devid;
- char *minor, *ret;
-
- if ((fd = open(path, O_RDONLY)) < 0)
- return (NULL);
-
- minor = NULL;
- ret = NULL;
- if (devid_get(fd, &devid) == 0) {
- if (devid_get_minor_name(fd, &minor) == 0)
- ret = devid_str_encode(devid, minor);
- if (minor != NULL)
- devid_str_free(minor);
- devid_free(devid);
- }
- (void) close(fd);
-
- return (ret);
-}
-
-/*
- * Issue the necessary ioctl() to update the stored path value for the vdev. We
- * ignore any failure here, since a common case is for an unprivileged user to
- * type 'zpool status', and we'll display the correct information anyway.
- */
-static void
-set_path(zpool_handle_t *zhp, nvlist_t *nv, const char *path)
-{
- zfs_cmd_t zc = {"\0"};
-
- (void) strncpy(zc.zc_name, zhp->zpool_name, sizeof (zc.zc_name));
- (void) strncpy(zc.zc_value, path, sizeof (zc.zc_value));
- verify(nvlist_lookup_uint64(nv, ZPOOL_CONFIG_GUID,
- &zc.zc_guid) == 0);
-
- (void) ioctl(zhp->zpool_hdl->libzfs_fd, ZFS_IOC_VDEV_SETPATH, &zc);
-}
-#endif /* sun */
-
#define PATH_BUF_LEN 64
/*
@@ -4019,54 +3938,6 @@ zpool_vdev_name(libzfs_handle_t *hdl, zpool_handle_t *zhp, nvlist_t *nv,
(void) snprintf(buf, sizeof (buf), "%llu", (u_longlong_t)value);
path = buf;
} else if (nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &path) == 0) {
-#if defined(__sun__) || defined(__sun)
- /*
- * Live VDEV path updates to a kernel VDEV during a
- * zpool_vdev_name lookup are not supported on Linux.
- */
- char *devid;
- vdev_stat_t *vs;
- uint_t vsc;
-
- /*
- * If the device is dead (faulted, offline, etc) then don't
- * bother opening it. Otherwise we may be forcing the user to
- * open a misbehaving device, which can have undesirable
- * effects.
- */
- if ((nvlist_lookup_uint64_array(nv, ZPOOL_CONFIG_VDEV_STATS,
- (uint64_t **)&vs, &vsc) != 0 ||
- vs->vs_state >= VDEV_STATE_DEGRADED) &&
- zhp != NULL &&
- nvlist_lookup_string(nv, ZPOOL_CONFIG_DEVID, &devid) == 0) {
- /*
- * Determine if the current path is correct.
- */
- char *newdevid = path_to_devid(path);
-
- if (newdevid == NULL ||
- strcmp(devid, newdevid) != 0) {
- char *newpath;
-
- if ((newpath = devid_to_path(devid)) != NULL) {
- /*
- * Update the path appropriately.
- */
- set_path(zhp, nv, newpath);
- if (nvlist_add_string(nv,
- ZPOOL_CONFIG_PATH, newpath) == 0)
- verify(nvlist_lookup_string(nv,
- ZPOOL_CONFIG_PATH,
- &path) == 0);
- free(newpath);
- }
- }
-
- if (newdevid)
- devid_str_free(newdevid);
- }
-#endif /* sun */
-
if (name_flags & VDEV_NAME_FOLLOW_LINKS) {
char *rp = realpath(path, NULL);
if (rp) {
diff --git a/lib/libzfs/libzfs_util.c b/lib/libzfs/libzfs_util.c
index de4d8bff9..04100071d 100644
--- a/lib/libzfs/libzfs_util.c
+++ b/lib/libzfs/libzfs_util.c
@@ -1095,7 +1095,6 @@ zfs_path_to_zhandle(libzfs_handle_t *hdl, char *path, zfs_type_t argtype)
{
struct stat64 statbuf;
struct extmnttab entry;
- int ret;
if (path[0] != '/' && strncmp(path, "./", strlen("./")) != 0) {
/*
@@ -1104,24 +1103,12 @@ zfs_path_to_zhandle(libzfs_handle_t *hdl, char *path, zfs_type_t argtype)
return (zfs_open(hdl, path, argtype));
}
- if (stat64(path, &statbuf) != 0) {
- (void) fprintf(stderr, "%s: %s\n", path, strerror(errno));
- return (NULL);
- }
-
/* Reopen MNTTAB to prevent reading stale data from open file */
if (freopen(MNTTAB, "r", hdl->libzfs_mnttab) == NULL)
return (NULL);
- while ((ret = getextmntent(hdl->libzfs_mnttab, &entry, 0)) == 0) {
- if (makedevice(entry.mnt_major, entry.mnt_minor) ==
- statbuf.st_dev) {
- break;
- }
- }
- if (ret != 0) {
+ if (getextmntent(path, &entry, &statbuf) != 0)
return (NULL);
- }
if (strcmp(entry.mnt_fstype, MNTTYPE_ZFS) != 0) {
(void) fprintf(stderr, gettext("'%s': not a ZFS filesystem\n"),
diff --git a/lib/libzfs_core/Makefile.am b/lib/libzfs_core/Makefile.am
index 421b8b4bf..bc3d309f8 100644
--- a/lib/libzfs_core/Makefile.am
+++ b/lib/libzfs_core/Makefile.am
@@ -1,9 +1,5 @@
include $(top_srcdir)/config/Rules.am
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
lib_LTLIBRARIES = libzfs_core.la
USER_C = \
diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am
index 1b2405a53..97f9abcf4 100644
--- a/lib/libzpool/Makefile.am
+++ b/lib/libzpool/Makefile.am
@@ -15,10 +15,6 @@ AM_CFLAGS += $(FRAME_LARGER_THAN)
AM_CFLAGS += -DLIB_ZPOOL_BUILD
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
lib_LTLIBRARIES = libzpool.la
USER_C = \
diff --git a/lib/libzpool/kernel.c b/lib/libzpool/kernel.c
index 40a98afba..965740eac 100644
--- a/lib/libzpool/kernel.c
+++ b/lib/libzpool/kernel.c
@@ -504,60 +504,16 @@ vn_open(char *path, int x1, int flags, int mode, vnode_t **vpp, int x2, int x3)
int dump_fd = -1;
vnode_t *vp;
int old_umask = 0;
- char *realpath;
struct stat64 st;
int err;
- realpath = umem_alloc(MAXPATHLEN, UMEM_NOFAIL);
-
- /*
- * If we're accessing a real disk from userland, we need to use
- * the character interface to avoid caching. This is particularly
- * important if we're trying to look at a real in-kernel storage
- * pool from userland, e.g. via zdb, because otherwise we won't
- * see the changes occurring under the segmap cache.
- * On the other hand, the stupid character device returns zero
- * for its size. So -- gag -- we open the block device to get
- * its size, and remember it for subsequent VOP_GETATTR().
- */
-#if defined(__sun__) || defined(__sun)
- if (strncmp(path, "/dev/", 5) == 0) {
-#else
- if (0) {
-#endif
- char *dsk;
- fd = open64(path, O_RDONLY);
- if (fd == -1) {
- err = errno;
- free(realpath);
- return (err);
- }
- if (fstat64(fd, &st) == -1) {
- err = errno;
- close(fd);
- free(realpath);
- return (err);
- }
- close(fd);
- (void) sprintf(realpath, "%s", path);
- dsk = strstr(path, "/dsk/");
- if (dsk != NULL)
- (void) sprintf(realpath + (dsk - path) + 1, "r%s",
- dsk + 1);
- } else {
- (void) sprintf(realpath, "%s", path);
- if (!(flags & FCREAT) && stat64(realpath, &st) == -1) {
- err = errno;
- free(realpath);
- return (err);
- }
+ if (!(flags & FCREAT) && stat64(path, &st) == -1) {
+ err = errno;
+ return (err);
}
- if (!(flags & FCREAT) && S_ISBLK(st.st_mode)) {
-#ifdef __linux__
+ if (!(flags & FCREAT) && S_ISBLK(st.st_mode))
flags |= O_DIRECT;
-#endif
- }
if (flags & FCREAT)
old_umask = umask(0);
@@ -566,10 +522,9 @@ vn_open(char *path, int x1, int flags, int mode, vnode_t **vpp, int x2, int x3)
* The construct 'flags - FREAD' conveniently maps combinations of
* FREAD and FWRITE to the corresponding O_RDONLY, O_WRONLY, and O_RDWR.
*/
- fd = open64(realpath, flags - FREAD, mode);
+ fd = open64(path, flags - FREAD, mode);
if (fd == -1) {
err = errno;
- free(realpath);
return (err);
}
@@ -579,12 +534,11 @@ vn_open(char *path, int x1, int flags, int mode, vnode_t **vpp, int x2, int x3)
if (vn_dumpdir != NULL) {
char *dumppath = umem_zalloc(MAXPATHLEN, UMEM_NOFAIL);
(void) snprintf(dumppath, MAXPATHLEN,
- "%s/%s", vn_dumpdir, basename(realpath));
+ "%s/%s", vn_dumpdir, basename(path));
dump_fd = open64(dumppath, O_CREAT | O_WRONLY, 0666);
umem_free(dumppath, MAXPATHLEN);
if (dump_fd == -1) {
err = errno;
- free(realpath);
close(fd);
return (err);
}
@@ -592,8 +546,6 @@ vn_open(char *path, int x1, int flags, int mode, vnode_t **vpp, int x2, int x3)
dump_fd = -1;
}
- free(realpath);
-
if (fstat64_blk(fd, &st) == -1) {
err = errno;
close(fd);
diff --git a/lib/libzutil/Makefile.am b/lib/libzutil/Makefile.am
index 720b843ab..62b0114ed 100644
--- a/lib/libzutil/Makefile.am
+++ b/lib/libzutil/Makefile.am
@@ -3,10 +3,6 @@ include $(top_srcdir)/config/Rules.am
# Suppress unused but set variable warnings often due to ASSERTs
AM_CFLAGS += $(NO_UNUSED_BUT_SET_VARIABLE)
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
noinst_LTLIBRARIES = libzutil.la
USER_C = \
diff --git a/lib/libzutil/zutil_import.c b/lib/libzutil/zutil_import.c
index 28733cc74..bb7db259c 100644
--- a/lib/libzutil/zutil_import.c
+++ b/lib/libzutil/zutil_import.c
@@ -47,7 +47,6 @@
*/
#include <ctype.h>
-#include <devid.h>
#include <dirent.h>
#include <errno.h>
#include <libintl.h>
diff --git a/tests/zfs-tests/cmd/file_write/file_write.c b/tests/zfs-tests/cmd/file_write/file_write.c
index 81fc5de39..ec393be7f 100644
--- a/tests/zfs-tests/cmd/file_write/file_write.c
+++ b/tests/zfs-tests/cmd/file_write/file_write.c
@@ -34,10 +34,6 @@
#include <time.h>
#include <stdint.h>
-typedef unsigned char uchar_t;
-typedef long long longlong_t;
-typedef longlong_t offset_t;
-
static unsigned char bigbuffer[BIGBUFFERSIZE];
/*
diff --git a/tests/zfs-tests/cmd/largest_file/largest_file.c b/tests/zfs-tests/cmd/largest_file/largest_file.c
index d1eceaf56..00e1019cc 100644
--- a/tests/zfs-tests/cmd/largest_file/largest_file.c
+++ b/tests/zfs-tests/cmd/largest_file/largest_file.c
@@ -33,12 +33,9 @@
#include <signal.h>
#include <stdio.h>
#include <string.h>
-#include <sys/types.h>
+#include <sys/stdtypes.h>
#include <unistd.h>
-typedef long long offset_t;
-#define MAXOFFSET_T LLONG_MAX
-
/*
* --------------------------------------------------------------
*
diff --git a/tests/zfs-tests/cmd/libzfs_input_check/Makefile.am b/tests/zfs-tests/cmd/libzfs_input_check/Makefile.am
index b62a6bb0f..32cc46561 100644
--- a/tests/zfs-tests/cmd/libzfs_input_check/Makefile.am
+++ b/tests/zfs-tests/cmd/libzfs_input_check/Makefile.am
@@ -2,10 +2,6 @@ include $(top_srcdir)/config/Rules.am
pkgexecdir = $(datadir)/@PACKAGE@/zfs-tests/bin
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
pkgexec_PROGRAMS = libzfs_input_check
libzfs_input_check_SOURCES = libzfs_input_check.c
diff --git a/tests/zfs-tests/cmd/mkbusy/mkbusy.c b/tests/zfs-tests/cmd/mkbusy/mkbusy.c
index 9634904f0..c26822bb5 100644
--- a/tests/zfs-tests/cmd/mkbusy/mkbusy.c
+++ b/tests/zfs-tests/cmd/mkbusy/mkbusy.c
@@ -30,8 +30,6 @@
#include <errno.h>
#include <string.h>
-typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
-
static void
usage(char *progname)
{
diff --git a/tests/zfs-tests/cmd/mkfile/mkfile.c b/tests/zfs-tests/cmd/mkfile/mkfile.c
index 7ebf7bbcf..888af6db6 100644
--- a/tests/zfs-tests/cmd/mkfile/mkfile.c
+++ b/tests/zfs-tests/cmd/mkfile/mkfile.c
@@ -35,17 +35,13 @@
#include <libintl.h>
#include <errno.h>
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
-
-#define BLOCK_SIZE 512 /* bytes */
+#define BLOCKSIZE 512 /* bytes */
#define KILOBYTE 1024
#define MEGABYTE (KILOBYTE * KILOBYTE)
#define GIGABYTE (KILOBYTE * MEGABYTE)
#define FILE_MODE (S_ISVTX + S_IRUSR + S_IWUSR)
-typedef long long offset_t;
-
static void usage(void);
int
@@ -95,7 +91,7 @@ main(int argc, char **argv)
break;
case 'b':
case 'B':
- mult = BLOCK_SIZE;
+ mult = BLOCKSIZE;
break;
case 'm':
case 'M':
diff --git a/tests/zfs-tests/cmd/nvlist_to_lua/Makefile.am b/tests/zfs-tests/cmd/nvlist_to_lua/Makefile.am
index f509a97e3..7d60c2482 100644
--- a/tests/zfs-tests/cmd/nvlist_to_lua/Makefile.am
+++ b/tests/zfs-tests/cmd/nvlist_to_lua/Makefile.am
@@ -2,10 +2,6 @@ include $(top_srcdir)/config/Rules.am
pkgexecdir = $(datadir)/@PACKAGE@/zfs-tests/bin
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
pkgexec_PROGRAMS = nvlist_to_lua
nvlist_to_lua_SOURCES = nvlist_to_lua.c
diff --git a/tests/zfs-tests/tests/functional/checksum/edonr_test.c b/tests/zfs-tests/tests/functional/checksum/edonr_test.c
index a2a924e5d..a88756091 100644
--- a/tests/zfs-tests/tests/functional/checksum/edonr_test.c
+++ b/tests/zfs-tests/tests/functional/checksum/edonr_test.c
@@ -38,9 +38,7 @@
#include <stdio.h>
#include <sys/note.h>
#include <sys/time.h>
-
-typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
-typedef unsigned long long u_longlong_t;
+#include <sys/stdtypes.h>
/*
* Test messages from:
diff --git a/tests/zfs-tests/tests/functional/checksum/sha2_test.c b/tests/zfs-tests/tests/functional/checksum/sha2_test.c
index afd6f8243..25a8d2bf3 100644
--- a/tests/zfs-tests/tests/functional/checksum/sha2_test.c
+++ b/tests/zfs-tests/tests/functional/checksum/sha2_test.c
@@ -39,9 +39,8 @@
#include <sys/time.h>
#define _SHA2_IMPL
#include <sys/sha2.h>
+#include <sys/stdtypes.h>
#define NOTE(x)
-typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
-typedef unsigned long long u_longlong_t;
/*
diff --git a/tests/zfs-tests/tests/functional/checksum/skein_test.c b/tests/zfs-tests/tests/functional/checksum/skein_test.c
index 37548f03b..55df9075c 100644
--- a/tests/zfs-tests/tests/functional/checksum/skein_test.c
+++ b/tests/zfs-tests/tests/functional/checksum/skein_test.c
@@ -37,11 +37,9 @@
#include <strings.h>
#include <stdio.h>
#include <sys/time.h>
+#include <sys/stdtypes.h>
#define NOTE(x)
-typedef enum boolean { B_FALSE, B_TRUE } boolean_t;
-typedef unsigned long long u_longlong_t;
-
/*
* Skein test suite using values from the Skein V1.3 specification found at:
* http://www.skein-hash.info/sites/default/files/skein1.3.pdf
diff --git a/tests/zfs-tests/tests/functional/hkdf/Makefile.am b/tests/zfs-tests/tests/functional/hkdf/Makefile.am
index b54e353cd..c1266214f 100644
--- a/tests/zfs-tests/tests/functional/hkdf/Makefile.am
+++ b/tests/zfs-tests/tests/functional/hkdf/Makefile.am
@@ -1,7 +1,5 @@
include $(top_srcdir)/config/Rules.am
-AM_CPPFLAGS += -I$(top_srcdir)/include
-AM_CPPFLAGS += -I$(top_srcdir)/lib/libspl/include
LDADD = $(top_builddir)/lib/libzpool/libzpool.la
AUTOMAKE_OPTIONS = subdir-objects
diff --git a/tests/zfs-tests/tests/functional/libzfs/Makefile.am b/tests/zfs-tests/tests/functional/libzfs/Makefile.am
index ae9be5097..e9a703f49 100644
--- a/tests/zfs-tests/tests/functional/libzfs/Makefile.am
+++ b/tests/zfs-tests/tests/functional/libzfs/Makefile.am
@@ -9,10 +9,6 @@ dist_pkgdata_SCRIPTS = \
setup.ksh \
libzfs_input.ksh
-DEFAULT_INCLUDES += \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/lib/libspl/include
-
many_fds_LDADD = \
$(top_builddir)/lib/libzfs/libzfs.la