From d31277abb1db51dece836dd47628ca42c07e528c Mon Sep 17 00:00:00 2001 From: Matthew Macy Date: Wed, 2 Oct 2019 10:39:48 -0700 Subject: [PATCH] OpenZFS restructuring - libspl Factor Linux specific pieces out of libspl. Reviewed-by: Ryan Moeller Reviewed-by: Sean Eric Fagan Reviewed-by: Brian Behlendorf Signed-off-by: Matt Macy Closes #9336 --- cmd/mount_zfs/Makefile.am | 4 - cmd/raidz_test/Makefile.am | 4 - cmd/zdb/Makefile.am | 4 - cmd/zed/Makefile.am | 6 +- cmd/zed/agents/zfs_mod.c | 1 - cmd/zfs/Makefile.am | 4 - cmd/zfs/zfs_main.c | 20 +-- cmd/zhack/Makefile.am | 4 - cmd/zinject/Makefile.am | 4 - cmd/zinject/translate.c | 32 +---- cmd/zpool/Makefile.am | 5 +- cmd/zpool/os/linux/zpool_vdev_os.c | 1 - cmd/zpool/zpool_vdev.c | 1 - cmd/zstreamdump/Makefile.am | 4 - cmd/ztest/Makefile.am | 4 - cmd/zvol_id/Makefile.am | 4 - config/Rules.am | 11 +- configure.ac | 3 + lib/libavl/Makefile.am | 4 - lib/libefi/Makefile.am | 4 - lib/libicp/Makefile.am | 5 - lib/libnvpair/Makefile.am | 4 - lib/libshare/Makefile.am | 4 - lib/libspl/Makefile.am | 13 +- lib/libspl/asm-generic/Makefile.am | 3 - lib/libspl/include/Makefile.am | 3 +- lib/libspl/include/devid.h | 32 ----- lib/libspl/include/os/Makefile.am | 3 + lib/libspl/include/os/linux/Makefile.am | 1 + lib/libspl/include/os/linux/sys/Makefile.am | 10 ++ .../include/{ => os/linux}/sys/byteorder.h | 0 lib/libspl/include/{ => os/linux}/sys/file.h | 0 .../include/{ => os/linux}/sys/mnttab.h | 7 +- lib/libspl/include/{ => os/linux}/sys/mount.h | 0 lib/libspl/include/{ => os/linux}/sys/param.h | 0 lib/libspl/include/{ => os/linux}/sys/stat.h | 0 .../include/{ => os/linux}/sys/sysmacros.h | 0 lib/libspl/include/{ => os/linux}/sys/uio.h | 6 +- lib/libspl/include/sys/Makefile.am | 9 -- lib/libspl/{ => os/linux}/getexecname.c | 0 lib/libspl/{ => os/linux}/gethostid.c | 0 lib/libspl/{ => os/linux}/getmntany.c | 67 ++++++++- lib/libtpool/Makefile.am | 4 - lib/libunicode/Makefile.am | 4 - lib/libuutil/Makefile.am | 4 - lib/libzfs/Makefile.am | 5 - lib/libzfs/libzfs_import.c | 1 - lib/libzfs/libzfs_pool.c | 129 ------------------ lib/libzfs/libzfs_util.c | 15 +- lib/libzfs_core/Makefile.am | 4 - lib/libzpool/Makefile.am | 4 - lib/libzpool/kernel.c | 60 +------- lib/libzutil/Makefile.am | 4 - lib/libzutil/zutil_import.c | 1 - tests/zfs-tests/cmd/file_write/file_write.c | 4 - .../zfs-tests/cmd/largest_file/largest_file.c | 5 +- .../cmd/libzfs_input_check/Makefile.am | 4 - tests/zfs-tests/cmd/mkbusy/mkbusy.c | 2 - tests/zfs-tests/cmd/mkfile/mkfile.c | 8 +- tests/zfs-tests/cmd/nvlist_to_lua/Makefile.am | 4 - .../tests/functional/checksum/edonr_test.c | 4 +- .../tests/functional/checksum/sha2_test.c | 3 +- .../tests/functional/checksum/skein_test.c | 4 +- .../tests/functional/hkdf/Makefile.am | 2 - .../tests/functional/libzfs/Makefile.am | 4 - 65 files changed, 127 insertions(+), 443 deletions(-) delete mode 100644 lib/libspl/include/devid.h create mode 100644 lib/libspl/include/os/Makefile.am create mode 100644 lib/libspl/include/os/linux/Makefile.am create mode 100644 lib/libspl/include/os/linux/sys/Makefile.am rename lib/libspl/include/{ => os/linux}/sys/byteorder.h (100%) rename lib/libspl/include/{ => os/linux}/sys/file.h (100%) rename lib/libspl/include/{ => os/linux}/sys/mnttab.h (94%) rename lib/libspl/include/{ => os/linux}/sys/mount.h (100%) rename lib/libspl/include/{ => os/linux}/sys/param.h (100%) rename lib/libspl/include/{ => os/linux}/sys/stat.h (100%) rename lib/libspl/include/{ => os/linux}/sys/sysmacros.h (100%) rename lib/libspl/include/{ => os/linux}/sys/uio.h (95%) rename lib/libspl/{ => os/linux}/getexecname.c (100%) rename lib/libspl/{ => os/linux}/gethostid.c (100%) rename lib/libspl/{ => os/linux}/getmntany.c (62%) diff --git a/cmd/mount_zfs/Makefile.am b/cmd/mount_zfs/Makefile.am index 7adedd63b6..1ffeef7fe1 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 a394a0dde3..c04d101b88 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 1fa7ec651b..07c1d068b0 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 fb479f9b5c..40c0834af0 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 d980794d0a..959ed24cd2 100644 --- a/cmd/zed/agents/zfs_mod.c +++ b/cmd/zed/agents/zfs_mod.c @@ -69,7 +69,6 @@ */ #include -#include #include #include #include diff --git a/cmd/zfs/Makefile.am b/cmd/zfs/Makefile.am index 8b6ddaa200..49ad6f21f5 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 62c5bcca44..9597e27907 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 6e3e706ec0..ac4b6aadb6 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 ab7f4de123..71b48255e6 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 d4795d0711..8542d37c50 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 42b19ef235..b9e221c1f7 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 1aaad974e8..d087c4c14d 100644 --- a/cmd/zpool/os/linux/zpool_vdev_os.c +++ b/cmd/zpool/os/linux/zpool_vdev_os.c @@ -64,7 +64,6 @@ #include #include -#include #include #include #include diff --git a/cmd/zpool/zpool_vdev.c b/cmd/zpool/zpool_vdev.c index af48c6a710..bb49211dc8 100644 --- a/cmd/zpool/zpool_vdev.c +++ b/cmd/zpool/zpool_vdev.c @@ -64,7 +64,6 @@ #include #include -#include #include #include #include diff --git a/cmd/zstreamdump/Makefile.am b/cmd/zstreamdump/Makefile.am index f80b5018e0..1f5cd4d9ff 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 55af416805..db9a104c0c 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 d131c6386f..a584875081 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 1e569d3419..83fbf4ca05 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 444f86a6b1..8d75b2ec8e 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 82b30bd80f..618cef1e14 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 9f69e46014..73c817192a 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 e9f22cd707..8b6c417714 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 6d59d7bfc6..6626b6d054 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 462e333ffc..b082d992be 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 cd74676dd2..313760175c 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 17fe501fa1..3968231607 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 842a8fbb39..2fd0c15ff3 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 8e483281a4..0000000000 --- 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 - -#endif diff --git a/lib/libspl/include/os/Makefile.am b/lib/libspl/include/os/Makefile.am new file mode 100644 index 0000000000..09c0beec47 --- /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 0000000000..081839c48c --- /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 0000000000..c11732cc1f --- /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 similarity index 100% rename from lib/libspl/include/sys/byteorder.h rename to 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 similarity index 100% rename from lib/libspl/include/sys/file.h rename to 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 similarity index 94% rename from lib/libspl/include/sys/mnttab.h rename to lib/libspl/include/os/linux/sys/mnttab.h index 026a8fa7be..7b30bf1d54 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 similarity index 100% rename from lib/libspl/include/sys/mount.h rename to 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 similarity index 100% rename from lib/libspl/include/sys/param.h rename to 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 similarity index 100% rename from lib/libspl/include/sys/stat.h rename to 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 similarity index 100% rename from lib/libspl/include/sys/sysmacros.h rename to 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 similarity index 95% rename from lib/libspl/include/sys/uio.h rename to lib/libspl/include/os/linux/sys/uio.h index 91ee3b3fd0..0b85af66dc 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 #include_next +#include 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 60ddb7881a..54aece1299 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 similarity index 100% rename from lib/libspl/getexecname.c rename to lib/libspl/os/linux/getexecname.c diff --git a/lib/libspl/gethostid.c b/lib/libspl/os/linux/gethostid.c similarity index 100% rename from lib/libspl/gethostid.c rename to lib/libspl/os/linux/gethostid.c diff --git a/lib/libspl/getmntany.c b/lib/libspl/os/linux/getmntany.c similarity index 62% rename from lib/libspl/getmntany.c rename to lib/libspl/os/linux/getmntany.c index 43e523e4a5..f42fcc0478 100644 --- a/lib/libspl/getmntany.c +++ b/lib/libspl/os/linux/getmntany.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -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 586eec2ec9..7734699476 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 0a4734c037..ea9439d132 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 09eef792a2..c61b66fce3 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 421970413d..3d14a77c1a 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 3d7a0bf12a..747977403d 100644 --- a/lib/libzfs/libzfs_import.c +++ b/lib/libzfs/libzfs_import.c @@ -26,7 +26,6 @@ * Copyright (c) 2016, Intel Corporation. */ -#include #include #include #include diff --git a/lib/libzfs/libzfs_pool.c b/lib/libzfs/libzfs_pool.c index 00f69b26d3..2641b11528 100644 --- a/lib/libzfs/libzfs_pool.c +++ b/lib/libzfs/libzfs_pool.c @@ -31,7 +31,6 @@ */ #include -#include #include #include #include @@ -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 de4d8bff9a..04100071d0 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 421b8b4bfb..bc3d309f82 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 1b2405a533..97f9abcf43 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 40a98afba4..965740eac0 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 720b843ab9..62b0114ed0 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 28733cc747..bb7db259cb 100644 --- a/lib/libzutil/zutil_import.c +++ b/lib/libzutil/zutil_import.c @@ -47,7 +47,6 @@ */ #include -#include #include #include #include diff --git a/tests/zfs-tests/cmd/file_write/file_write.c b/tests/zfs-tests/cmd/file_write/file_write.c index 81fc5de397..ec393be7f8 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 #include -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 d1eceaf568..00e1019cc8 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 #include #include -#include +#include #include -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 b62a6bb0f5..32cc46561f 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 9634904f0d..c26822bb57 100644 --- a/tests/zfs-tests/cmd/mkbusy/mkbusy.c +++ b/tests/zfs-tests/cmd/mkbusy/mkbusy.c @@ -30,8 +30,6 @@ #include #include -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 7ebf7bbcf8..888af6db6a 100644 --- a/tests/zfs-tests/cmd/mkfile/mkfile.c +++ b/tests/zfs-tests/cmd/mkfile/mkfile.c @@ -35,17 +35,13 @@ #include #include -#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 f509a97e38..7d60c24821 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 a2a924e5d8..a88756091e 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 #include #include - -typedef enum boolean { B_FALSE, B_TRUE } boolean_t; -typedef unsigned long long u_longlong_t; +#include /* * 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 afd6f82438..25a8d2bf36 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 #define _SHA2_IMPL #include +#include #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 37548f03b3..55df9075c6 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 #include #include +#include #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 b54e353cd9..c1266214fe 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 ae9be5097a..e9a703f490 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