Lines Matching defs:slice

52 static void get_slice_use(dm_descriptor_t slice, char *name,
55 dm_descriptor_t slice, uint32_t blocksize, int *error);
57 static int slice_in_use(dmgt_slice_t *slice, int *error);
58 static int slice_too_small(dmgt_slice_t *slice);
272 /* For each slice... */
276 /* Get slice */
277 dmgt_slice_t *slice =
293 sap[nslices] = slice;
380 dmgt_slice_t *slice = slices[i];
387 if (slice == NULL) {
391 s_in_use = slice_in_use(slice, error);
404 * Remove any slice that overlaps with this
405 * in-use slice
411 slices_overlap(slice, slice2)) {
418 dmgt_free_slice(slice);
419 } else if (slice_too_small(slice)) {
421 dmgt_free_slice(slice);
488 get_slice_use(dm_descriptor_t slice, char *name, char **used_name,
491 /* Get slice use statistics */
492 nvlist_t *stats = dm_get_stats(slice, DM_SLICE_STAT_USE, error);
494 handle_error("could not get stats of slice %s", name);
504 /* Get the type of usage for this slice */
517 /* Get the object using this slice */
541 get_slice(dm_descriptor_t slice, uint32_t blocksize, int *error)
552 sp->name = get_device_name(slice, error);
555 nvlist_t *attrs = dm_get_attributes(slice, error);
558 "attributes from slice: %s", sp->name);
570 "size of slice: %s", sp->name);
588 "start block of slice: %s",
596 /* Set slice use */
597 get_slice_use(slice, sp->name,
628 slice_too_small(dmgt_slice_t *slice)
631 if (slice->size < SPA_MINDEVSIZE) {
633 (void) fprintf(stderr, "can't use %s: slice too small: %llu\n",
634 slice->name, (unsigned long long)slice->size);
643 slice_in_use(dmgt_slice_t *slice, int *error)
648 /* Determine whether this slice could be passed to "zpool -f" */
649 in_use = dm_inuse(slice->name, &msg, DM_WHO_ZPOOL_FORCE, error);
651 handle_error("%s: could not determine usage", slice->name);
658 slice->name, slice->used_name, slice->used_by, msg);
750 dmgt_free_slice(dmgt_slice_t *slice)
752 if (slice != NULL) {
753 free(slice->name);
754 free(slice->used_name);
755 free(slice->used_by);
756 free(slice);