Lines Matching refs:slice

50 static void get_slice_use(dm_descriptor_t slice, char *name,
53 dm_descriptor_t slice, uint32_t blocksize, int *error);
55 static int slice_in_use(dmgt_slice_t *slice, int *error);
56 static int slice_too_small(dmgt_slice_t *slice);
269 /* For each slice... */
273 /* Get slice */
274 dmgt_slice_t *slice =
290 sap[nslices] = slice;
376 dmgt_slice_t *slice = slices[i];
383 if (slice == NULL) {
387 s_in_use = slice_in_use(slice, error);
400 * Remove any slice that overlaps with this
401 * in-use slice
407 slices_overlap(slice, slice2)) {
414 dmgt_free_slice(slice);
415 } else if (slice_too_small(slice)) {
417 dmgt_free_slice(slice);
484 get_slice_use(dm_descriptor_t slice, char *name, char **used_name,
487 /* Get slice use statistics */
488 nvlist_t *stats = dm_get_stats(slice, DM_SLICE_STAT_USE, error);
490 handle_error("could not get stats of slice %s", name);
500 /* Get the type of usage for this slice */
513 /* Get the object using this slice */
537 get_slice(dm_descriptor_t slice, uint32_t blocksize, int *error)
548 sp->name = get_device_name(slice, error);
551 nvlist_t *attrs = dm_get_attributes(slice, error);
554 "attributes from slice: %s", sp->name);
566 "size of slice: %s", sp->name);
584 "start block of slice: %s",
592 /* Set slice use */
593 get_slice_use(slice, sp->name,
624 slice_too_small(dmgt_slice_t *slice)
627 if (slice->size < SPA_MINDEVSIZE) {
629 (void) fprintf(stderr, "can't use %s: slice too small: %llu\n",
630 slice->name, (unsigned long long)slice->size);
639 slice_in_use(dmgt_slice_t *slice, int *error)
644 /* Determine whether this slice could be passed to "zpool -f" */
645 in_use = dm_inuse(slice->name, &msg, DM_WHO_ZPOOL_FORCE, error);
647 handle_error("%s: could not determine usage", slice->name);
654 slice->name, slice->used_name, slice->used_by, msg);
746 dmgt_free_slice(dmgt_slice_t *slice)
748 if (slice != NULL) {
749 free(slice->name);
750 free(slice->used_name);
751 free(slice->used_by);
752 free(slice);