Changeset View
Changeset View
Standalone View
Standalone View
cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
Show First 20 Lines • Show All 5,594 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
holds_cbdata_t *cbp = data; | holds_cbdata_t *cbp = data; | ||||
nvlist_t *top_nvl = *cbp->cb_nvlp; | nvlist_t *top_nvl = *cbp->cb_nvlp; | ||||
nvlist_t *nvl = NULL; | nvlist_t *nvl = NULL; | ||||
nvpair_t *nvp = NULL; | nvpair_t *nvp = NULL; | ||||
const char *zname = zfs_get_name(zhp); | const char *zname = zfs_get_name(zhp); | ||||
size_t znamelen = strnlen(zname, ZFS_MAXNAMELEN); | size_t znamelen = strnlen(zname, ZFS_MAXNAMELEN); | ||||
if (cbp->cb_recursive) { | if (cbp->cb_recursive && cbp->cb_snapname != NULL) { | ||||
const char *snapname; | const char *snapname; | ||||
char *delim = strchr(zname, '@'); | char *delim = strchr(zname, '@'); | ||||
if (delim == NULL) | if (delim == NULL) | ||||
return (0); | return (0); | ||||
snapname = delim + 1; | snapname = delim + 1; | ||||
if (strcmp(cbp->cb_snapname, snapname)) | if (strcmp(cbp->cb_snapname, snapname)) | ||||
return (0); | return (0); | ||||
▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | if (argc < 1) | ||||
usage(B_FALSE); | usage(B_FALSE); | ||||
if (nvlist_alloc(&nvl, NV_UNIQUE_NAME, 0) != 0) | if (nvlist_alloc(&nvl, NV_UNIQUE_NAME, 0) != 0) | ||||
nomem(); | nomem(); | ||||
for (i = 0; i < argc; ++i) { | for (i = 0; i < argc; ++i) { | ||||
char *snapshot = argv[i]; | char *snapshot = argv[i]; | ||||
const char *delim; | const char *delim; | ||||
const char *snapname; | const char *snapname = NULL; | ||||
delim = strchr(snapshot, '@'); | delim = strchr(snapshot, '@'); | ||||
if (delim == NULL) { | if (delim != NULL) { | ||||
(void) fprintf(stderr, | |||||
gettext("'%s' is not a snapshot\n"), snapshot); | |||||
++errors; | |||||
continue; | |||||
} | |||||
snapname = delim + 1; | snapname = delim + 1; | ||||
if (recursive) | if (recursive) | ||||
snapshot[delim - snapshot] = '\0'; | snapshot[delim - snapshot] = '\0'; | ||||
} | |||||
cb.cb_recursive = recursive; | cb.cb_recursive = recursive; | ||||
cb.cb_snapname = snapname; | cb.cb_snapname = snapname; | ||||
cb.cb_nvlp = &nvl; | cb.cb_nvlp = &nvl; | ||||
/* | /* | ||||
* 1. collect holds data, set format options | * 1. collect holds data, set format options | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 1,442 Lines • Show Last 20 Lines |