freebsd-nq/lib/libzfs
Brian Behlendorf eac4720465 Allow 'zpool replace' to use short device names
The 'zpool replace' command would fail when given a short name
because unlike on other platforms the short name cannot be
deterministically expanded to a single path.  Multiple path
prefixes must be checked and in addition the partition suffix
for whole disks is determined by the prefix.

To handle this complexity a zfs_strcmp_pathname() function was
added which takes either a short or fully qualified device name.
Short names will be expanded using the prefixes in the default
import search path, or the ZPOOL_IMPORT_PATH environment variable
if it's defined.  All posible expansions are then compared against
the comparison path.  Care is taken to strip redundant slashes to
ensure legitimate matches are not missed.

In the context of this work the existing zfs_resolve_shortname()
function was extended to consider the ZPOOL_IMPORT_PATH when set.
The zfs_append_partition() interface was also simplified to take
only a single buffer.

The vast majority of these changes rework existing Linux specific
code which was originally written to accomidate udev.  However,
there is some minimal cleanup which removes Illumos specific code.
This was done to improve readability but the basic flow and intent
of the upstream code was maintained.

These changes are the logical conclusion of the previos work to
adjust the 'zpool import' search behavior, see commit 44867b6a.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #544
Closes #976
2012-10-22 08:45:58 -07:00
..
libzfs_changelist.c Remove HAVE_ZPL from commands and libraries 2011-02-04 16:14:34 -08:00
libzfs_config.c Illumos #1796, #2871, #2903, #2957 2012-08-23 10:40:02 -07:00
libzfs_dataset.c Illumos #3100: zvol rename fails with EBUSY when dirty. 2012-10-03 13:59:02 -07:00
libzfs_diff.c Add linux compatibility 2010-08-31 13:41:59 -07:00
libzfs_fru.c Add linux topology support 2010-08-31 13:42:00 -07:00
libzfs_graph.c Fix gcc missing braces warnings 2010-08-27 15:34:03 -07:00
libzfs_import.c Allow 'zpool replace' to use short device names 2012-10-22 08:45:58 -07:00
libzfs_iter.c Illumos #1644, #1645, #1646, #1647, #1708 2012-07-31 09:25:30 -07:00
libzfs_mount.c Add overlay(-O) mount option support 2012-01-12 15:49:38 -08:00
libzfs_pool.c Allow 'zpool replace' to use short device names 2012-10-22 08:45:58 -07:00
libzfs_sendrecv.c Illumos #2703: add mechanism to report ZFS send progress 2012-09-19 13:39:06 -07:00
libzfs_status.c Use gethostid in the Linux convention. 2011-04-25 10:36:17 -05:00
libzfs_util.c Allow 'zpool replace' to use short device names 2012-10-22 08:45:58 -07:00
Makefile.am Illumos #1644, #1645, #1646, #1647, #1708 2012-07-31 09:25:30 -07:00