mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 11:29:36 +03:00
8720e9e748
This patch adds a command (-c) option to zpool status and zpool iostat. The -c option allows you to run an arbitrary command on each vdev and display the first line of output in zpool status/iostat. The environment vars VDEV_PATH and VDEV_UPATH are set to the vdev's path and "underlying path" before running the command. For device mapper, multipath, or partitioned vdevs, VDEV_UPATH is the actual underlying /dev/sd* disk. This can be useful if the command you're running requires a /dev/sd* device. The patch also uses /sys/block/<dev>/slaves/ to lookup the underlying device instead of using libdevmapper. This not only removes the libdevmapper requirement at build time, but also allows you to resolve device mapper devices without being root. This means that UDEV_UPATH get set correctly when running zpool status/iostat as an unprivileged user. Example: $ zpool status -c 'echo I am $VDEV_PATH, $VDEV_UPATH' NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 mpatha ONLINE 0 0 0 I am /dev/mapper/mpatha, /dev/sdc sdb ONLINE 0 0 0 I am /dev/sdb1, /dev/sdb Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tony Hutter <hutter2@llnl.gov> Closes #5368
42 lines
871 B
Makefile
42 lines
871 B
Makefile
include $(top_srcdir)/config/Rules.am
|
|
|
|
libzfs_pcdir = $(datarootdir)/pkgconfig
|
|
libzfs_pc_DATA = libzfs.pc libzfs_core.pc
|
|
|
|
DEFAULT_INCLUDES += \
|
|
-I$(top_srcdir)/include \
|
|
-I$(top_srcdir)/lib/libspl/include
|
|
|
|
lib_LTLIBRARIES = libzfs.la
|
|
|
|
USER_C = \
|
|
libzfs_changelist.c \
|
|
libzfs_config.c \
|
|
libzfs_dataset.c \
|
|
libzfs_diff.c \
|
|
libzfs_fru.c \
|
|
libzfs_import.c \
|
|
libzfs_iter.c \
|
|
libzfs_mount.c \
|
|
libzfs_pool.c \
|
|
libzfs_sendrecv.c \
|
|
libzfs_status.c \
|
|
libzfs_util.c
|
|
|
|
KERNEL_C =
|
|
|
|
nodist_libzfs_la_SOURCES = \
|
|
$(USER_C) \
|
|
$(KERNEL_C)
|
|
|
|
libzfs_la_LIBADD = \
|
|
$(top_builddir)/lib/libzfs_core/libzfs_core.la \
|
|
$(top_builddir)/lib/libshare/libshare.la \
|
|
$(top_builddir)/lib/libnvpair/libnvpair.la \
|
|
$(top_builddir)/lib/libzpool/libzpool.la
|
|
|
|
libzfs_la_LIBADD += -lm $(LIBBLKID) $(LIBUDEV)
|
|
libzfs_la_LDFLAGS = -version-info 2:0:0
|
|
|
|
EXTRA_DIST = $(libzfs_pc_DATA) $(USER_C)
|