Lines Matching defs:holds
142 * reported if needed, such as when all holds fail.
218 zfs_dbgmsg("couldn't release holds on pool=%s "
224 zfs_dbgmsg("couldn't release holds on pool=%s "
238 dsl_onexit_hold_cleanup(spa_t *spa, nvlist_t *holds, minor_t minor)
242 if (minor == 0 || nvlist_empty(holds)) {
243 fnvlist_free(holds);
253 ca->zhca_holds = holds;
302 * holds is nvl of snapname -> holdname
309 * If none of the snapshots for requested holds exist then ENOENT will be
312 * If cleanup_minor is not 0, the holds will be temporary, which will be cleaned
315 * On success all the holds, for snapshots that existed, will be created and 0
318 * On failure no holds will be created, the errlist will be filled in,
321 * In all cases the errlist will contain entries for holds where the snapshot
325 dsl_dataset_user_hold(nvlist_t *holds, minor_t cleanup_minor, nvlist_t *errlist)
331 pair = nvlist_next_nvpair(holds, NULL);
335 dduha.dduha_holds = holds;
343 fnvlist_num_pairs(holds), ZFS_SPACE_CHECK_RESERVED);
370 dsl_dataset_t *ds, nvlist_t *holds, const char *snapname)
380 if (nvlist_empty(holds))
388 for (nvpair_t *pair = nvlist_next_nvpair(holds, NULL); pair != NULL;
389 pair = nvlist_next_nvpair(holds, pair)) {
400 * Non-existent holds are put on the errlist, but don't
464 nvlist_t *holds;
467 error = nvpair_value_nvlist(pair, &holds);
474 holds, snapname);
495 dsl_dataset_user_release_sync_one(dsl_dataset_t *ds, nvlist_t *holds,
501 for (nvpair_t *pair = nvlist_next_nvpair(holds, NULL); pair != NULL;
502 pair = nvlist_next_nvpair(holds, pair)) {
553 * Releases holds specified in the nvl holds.
555 * holds is nvl of snapname -> { holdname, ... }
558 * If tmpdp is not NULL the names for holds should be the dsobj's of snapshots,
564 * The release of non-existent holds are skipped.
570 dsl_dataset_user_release_impl(nvlist_t *holds, nvlist_t *errlist,
578 pair = nvlist_next_nvpair(holds, NULL);
587 /* Temporary holds are specified by dsobj string. */
591 for (pair = nvlist_next_nvpair(holds, NULL); pair != NULL;
592 pair = nvlist_next_nvpair(holds, pair)) {
610 /* Non-temporary holds are specified by name. */
614 for (pair = nvlist_next_nvpair(holds, NULL); pair != NULL;
615 pair = nvlist_next_nvpair(holds, pair)) {
621 ddura.ddura_holds = holds;
638 * holds is nvl of snapname -> { holdname, ... }
642 dsl_dataset_user_release(nvlist_t *holds, nvlist_t *errlist)
644 return (dsl_dataset_user_release_impl(holds, errlist, NULL));
648 * holds is nvl of snapdsobj -> { holdname, ... }
651 dsl_dataset_user_release_tmp(struct dsl_pool *dp, nvlist_t *holds)
654 (void) dsl_dataset_user_release_impl(holds, NULL, dp);