bmap = calloc(1, sizeof(struct bitmap));
if (!bmap)
- return errno;
+ return -errno;
bmap->bt_tree = malloc(sizeof(struct avl64tree_desc));
if (!bmap->bt_tree) {
- ret = errno;
+ ret = -errno;
goto out;
}
- ret = pthread_mutex_init(&bmap->bt_lock, NULL);
+ ret = -pthread_mutex_init(&bmap->bt_lock, NULL);
if (ret)
goto out_tree;
ext = bitmap_node_init(start, length);
if (!ext)
- return errno;
+ return -errno;
node = avl64_insert(bmap->bt_tree, &ext->btn_node);
if (node == NULL) {
free(ext);
- return EEXIST;
+ return -EEXIST;
}
return 0;
#if 0 /* Unused, provided for completeness. */
/* Clear a region of bits. */
-bool
+int
bitmap_clear(
struct bitmap *bmap,
uint64_t start,
/* Nothing, we're done. */
if (firstn == NULL && lastn == NULL) {
pthread_mutex_unlock(&bmap->bt_lock);
- return true;
+ return 0;
}
assert(firstn != NULL && lastn != NULL);
new_start;
ext = bitmap_node_init(new_start, new_length);
- if (!ext)
- return false;
+ if (!ext) {
+ ret = -errno;
+ goto out;
+ }
node = avl64_insert(bmap->bt_tree, &ext->btn_node);
if (node == NULL) {
- errno = EEXIST;
- return false;
+ ret = -EEXIST;
+ goto out;
}
break;
}
}
+out:
pthread_mutex_unlock(&bmap->bt_lock);
- return true;
+ return ret;
}
#endif
error = init_slab_cursor(ag_rmap->ar_raw_rmaps, rmap_compare, &rm_cur);
if (error)
goto err;
- error = bitmap_alloc(&own_ag_bitmap);
+ error = -bitmap_alloc(&own_ag_bitmap);
if (error)
goto err_slab;
while ((rm_rec = pop_slab_cursor(rm_cur)) != NULL) {
if (rm_rec->rm_owner != XFS_RMAP_OWN_AG)
continue;
- error = bitmap_set(own_ag_bitmap, rm_rec->rm_startblock,
+ error = -bitmap_set(own_ag_bitmap, rm_rec->rm_startblock,
rm_rec->rm_blockcount);
if (error) {
/*
else
bmp = vs->d_bad;
- return bitmap_iterate_range(bmp, bmap->bm_physical, bmap->bm_length,
+ return -bitmap_iterate_range(bmp, bmap->bm_physical, bmap->bm_length,
report_badfile, br);
}
(keys + 1)->fmr_owner = ULLONG_MAX;
(keys + 1)->fmr_offset = ULLONG_MAX;
(keys + 1)->fmr_flags = UINT_MAX;
- return scrub_iterate_fsmap(dioerr->ctx, keys, report_ioerr_fsmap,
+ return -scrub_iterate_fsmap(dioerr->ctx, keys, report_ioerr_fsmap,
&start);
}
tree = bitmap_for_disk(ctx, disk, vs);
if (!tree)
return 0;
- return bitmap_iterate(tree, report_ioerr, &dioerr);
+ return -bitmap_iterate(tree, report_ioerr, &dioerr);
}
/* Given bad extent lists for the data & rtdev, find bad files. */
return;
}
- ret = bitmap_set(tree, start, length);
+ ret = -bitmap_set(tree, start, length);
if (ret)
str_liberror(ctx, ret, _("setting bad block bitmap"));
}
struct media_verify_state vs = { NULL };
int ret, ret2, ret3;
- ret = bitmap_alloc(&vs.d_bad);
+ ret = -bitmap_alloc(&vs.d_bad);
if (ret) {
str_liberror(ctx, ret, _("creating datadev badblock bitmap"));
return ret;
}
- ret = bitmap_alloc(&vs.r_bad);
+ ret = -bitmap_alloc(&vs.r_bad);
if (ret) {
str_liberror(ctx, ret, _("creating realtime badblock bitmap"));
goto out_dbad;