zpool-set: print error message when pool or vdev is not valid
Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Allan Jude <allan@klarasystems.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Rob Wing <rob.wing@klarasystems.com> Sponsored-by: Seagate Technology Submitted-by: Klara, Inc. Closes #14310
This commit is contained in:
parent
a0276f7048
commit
7a85f58db6
|
@ -10328,29 +10328,27 @@ zpool_do_set(int argc, char **argv)
|
||||||
argc -= 2;
|
argc -= 2;
|
||||||
argv += 2;
|
argv += 2;
|
||||||
|
|
||||||
if (are_vdevs_in_pool(argc, argv, NULL, &cb.cb_vdevs)) {
|
/* argv[0] is pool name */
|
||||||
/* Argument is a vdev */
|
if (!is_pool(argv[0])) {
|
||||||
cb.cb_vdevs.cb_names = argv;
|
(void) fprintf(stderr,
|
||||||
cb.cb_vdevs.cb_names_count = 1;
|
gettext("cannot open '%s': is not a pool\n"), argv[0]);
|
||||||
cb.cb_type = ZFS_TYPE_VDEV;
|
return (EINVAL);
|
||||||
argc = 0; /* No pools to process */
|
}
|
||||||
} else if (are_all_pools(1, argv)) {
|
|
||||||
/* The first arg is a pool name */
|
/* argv[1], when supplied, is vdev name */
|
||||||
if (are_vdevs_in_pool(argc - 1, argv + 1, argv[0],
|
if (argc == 2) {
|
||||||
&cb.cb_vdevs)) {
|
if (!are_vdevs_in_pool(1, argv + 1, argv[0], &cb.cb_vdevs)) {
|
||||||
/* 2nd argument is a vdev */
|
(void) fprintf(stderr, gettext(
|
||||||
|
"cannot find '%s' in '%s': device not in pool\n"),
|
||||||
|
argv[1], argv[0]);
|
||||||
|
return (EINVAL);
|
||||||
|
}
|
||||||
cb.cb_vdevs.cb_names = argv + 1;
|
cb.cb_vdevs.cb_names = argv + 1;
|
||||||
cb.cb_vdevs.cb_names_count = 1;
|
cb.cb_vdevs.cb_names_count = 1;
|
||||||
cb.cb_type = ZFS_TYPE_VDEV;
|
cb.cb_type = ZFS_TYPE_VDEV;
|
||||||
argc = 1; /* One pool to process */
|
|
||||||
} else if (argc > 1) {
|
|
||||||
(void) fprintf(stderr,
|
|
||||||
gettext("too many pool names\n"));
|
|
||||||
usage(B_FALSE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
error = for_each_pool(argc, argv, B_TRUE, NULL, ZFS_TYPE_POOL,
|
error = for_each_pool(1, argv, B_TRUE, NULL, ZFS_TYPE_POOL,
|
||||||
B_FALSE, set_callback, &cb);
|
B_FALSE, set_callback, &cb);
|
||||||
|
|
||||||
return (error);
|
return (error);
|
||||||
|
|
Loading…
Reference in New Issue