mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
OpenZFS 3993, 4700
3993 zpool(1M) and zfs(1M) should support -p for "list" and "get" 4700 "zpool get" doesn't support -H or -o options Reviewed by: Dan McDonald <danmcd@omniti.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Robert Mustacchi <rm@joyent.com> Ported by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> OpenZFS-issue: https://www.illumos.org/issues/3993 OpenZFS-issue: https://www.illumos.org/issues/4700 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/c58b352 Porting notes: I removed ZoL's zpool_get_prop_literal() in favor of zpool_get_prop(..., boolean_t literal) since that's what OpenZFS uses. The functionality is the same.
This commit is contained in:
committed by
Brian Behlendorf
parent
f00828e5d9
commit
2a8b84b747
@@ -2372,8 +2372,8 @@ zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen,
|
||||
}
|
||||
|
||||
if ((zpool_get_prop(zhp->zpool_hdl,
|
||||
ZPOOL_PROP_ALTROOT, buf, MAXPATHLEN, NULL)) ||
|
||||
(strcmp(root, "-") == 0))
|
||||
ZPOOL_PROP_ALTROOT, buf, MAXPATHLEN, NULL,
|
||||
B_FALSE)) || (strcmp(root, "-") == 0))
|
||||
root[0] = '\0';
|
||||
/*
|
||||
* Special case an alternate root of '/'. This will
|
||||
|
||||
+11
-18
@@ -235,22 +235,12 @@ zpool_pool_state_to_name(pool_state_t state)
|
||||
return (gettext("UNKNOWN"));
|
||||
}
|
||||
|
||||
/*
|
||||
* API compatibility wrapper around zpool_get_prop_literal
|
||||
*/
|
||||
int
|
||||
zpool_get_prop(zpool_handle_t *zhp, zpool_prop_t prop, char *buf, size_t len,
|
||||
zprop_source_t *srctype)
|
||||
{
|
||||
return (zpool_get_prop_literal(zhp, prop, buf, len, srctype, B_FALSE));
|
||||
}
|
||||
|
||||
/*
|
||||
* Get a zpool property value for 'prop' and return the value in
|
||||
* a pre-allocated buffer.
|
||||
*/
|
||||
int
|
||||
zpool_get_prop_literal(zpool_handle_t *zhp, zpool_prop_t prop, char *buf,
|
||||
zpool_get_prop(zpool_handle_t *zhp, zpool_prop_t prop, char *buf,
|
||||
size_t len, zprop_source_t *srctype, boolean_t literal)
|
||||
{
|
||||
uint64_t intval;
|
||||
@@ -283,9 +273,7 @@ zpool_get_prop_literal(zpool_handle_t *zhp, zpool_prop_t prop, char *buf,
|
||||
(void) strlcpy(buf,
|
||||
zpool_get_prop_string(zhp, prop, &src),
|
||||
len);
|
||||
if (srctype != NULL)
|
||||
*srctype = src;
|
||||
return (0);
|
||||
break;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
@@ -337,8 +325,13 @@ zpool_get_prop_literal(zpool_handle_t *zhp, zpool_prop_t prop, char *buf,
|
||||
break;
|
||||
|
||||
case ZPOOL_PROP_CAPACITY:
|
||||
(void) snprintf(buf, len, "%llu%%",
|
||||
(u_longlong_t)intval);
|
||||
if (literal) {
|
||||
(void) snprintf(buf, len, "%llu",
|
||||
(u_longlong_t)intval);
|
||||
} else {
|
||||
(void) snprintf(buf, len, "%llu%%",
|
||||
(u_longlong_t)intval);
|
||||
}
|
||||
break;
|
||||
|
||||
case ZPOOL_PROP_FRAGMENTATION:
|
||||
@@ -443,7 +436,7 @@ zpool_is_bootable(zpool_handle_t *zhp)
|
||||
char bootfs[ZPOOL_MAXNAMELEN];
|
||||
|
||||
return (zpool_get_prop(zhp, ZPOOL_PROP_BOOTFS, bootfs,
|
||||
sizeof (bootfs), NULL) == 0 && strncmp(bootfs, "-",
|
||||
sizeof (bootfs), NULL, B_FALSE) == 0 && strncmp(bootfs, "-",
|
||||
sizeof (bootfs)) != 0);
|
||||
}
|
||||
|
||||
@@ -873,7 +866,7 @@ zpool_expand_proplist(zpool_handle_t *zhp, zprop_list_t **plp)
|
||||
|
||||
if (entry->pl_prop != ZPROP_INVAL &&
|
||||
zpool_get_prop(zhp, entry->pl_prop, buf, sizeof (buf),
|
||||
NULL) == 0) {
|
||||
NULL, B_FALSE) == 0) {
|
||||
if (strlen(buf) > entry->pl_width)
|
||||
entry->pl_width = strlen(buf);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user