Merge commit 'refs/top-bases/linux-zfs-branch' into linux-zfs-branch

This commit is contained in:
Brian Behlendorf 2009-03-16 10:43:38 -07:00
commit a278d2bed4
2 changed files with 0 additions and 71 deletions

View File

@ -2224,34 +2224,6 @@ zpool_do_list(int argc, char **argv)
return (ret);
}
static nvlist_t *
zpool_get_vdev_by_name(nvlist_t *nv, char *name)
{
nvlist_t **child;
uint_t c, children;
nvlist_t *match;
char *path;
size_t droot_len = strlen(DISK_ROOT) + 1;
if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN,
&child, &children) != 0) {
verify(nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &path) == 0);
if (strncmp(name, DISK_ROOT "/", droot_len) == 0)
name += droot_len;
if (strncmp(path, DISK_ROOT "/", droot_len) == 0)
path += droot_len;
if (strcmp(name, path) == 0)
return (nv);
return (NULL);
}
for (c = 0; c < children; c++)
if ((match = zpool_get_vdev_by_name(child[c], name)) != NULL)
return (match);
return (NULL);
}
static int
zpool_do_attach_or_replace(int argc, char **argv, int replacing)
{

View File

@ -78,49 +78,6 @@ zfs_type_to_name(zfs_type_t type)
return (NULL);
}
/*
* Given a path and mask of ZFS types, return a string describing this dataset.
* This is used when we fail to open a dataset and we cannot get an exact type.
* We guess what the type would have been based on the path and the mask of
* acceptable types.
*/
static const char *
path_to_str(const char *path, int types)
{
/*
* When given a single type, always report the exact type.
*/
if (types == ZFS_TYPE_SNAPSHOT)
return (dgettext(TEXT_DOMAIN, "snapshot"));
if (types == ZFS_TYPE_FILESYSTEM)
return (dgettext(TEXT_DOMAIN, "filesystem"));
if (types == ZFS_TYPE_VOLUME)
return (dgettext(TEXT_DOMAIN, "volume"));
/*
* The user is requesting more than one type of dataset. If this is the
* case, consult the path itself. If we're looking for a snapshot, and
* a '@' is found, then report it as "snapshot". Otherwise, remove the
* snapshot attribute and try again.
*/
if (types & ZFS_TYPE_SNAPSHOT) {
if (strchr(path, '@') != NULL)
return (dgettext(TEXT_DOMAIN, "snapshot"));
return (path_to_str(path, types & ~ZFS_TYPE_SNAPSHOT));
}
/*
* The user has requested either filesystems or volumes.
* We have no way of knowing a priori what type this would be, so always
* report it as "filesystem" or "volume", our two primitive types.
*/
if (types & ZFS_TYPE_FILESYSTEM)
return (dgettext(TEXT_DOMAIN, "filesystem"));
assert(types & ZFS_TYPE_VOLUME);
return (dgettext(TEXT_DOMAIN, "volume"));
}
/*
* Validate a ZFS path. This is used even before trying to open the dataset, to
* provide a more meaningful error message. We place a more useful message in