]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
libfrog: convert bitmap.c to negative error codes
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 6 Nov 2019 22:32:33 +0000 (17:32 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Wed, 6 Nov 2019 22:32:33 +0000 (17:32 -0500)
Convert libfrog functions to return negative error codes like libxfs
does.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libfrog/bitmap.c
repair/rmap.c
scrub/phase6.c

index c928d26f4a15b819fca0e8dbba3f9d189b24cab7..5af5ab8dd6b3bb853d2ff3e8bdfadff4fb8a850f 100644 (file)
@@ -76,14 +76,14 @@ bitmap_alloc(
 
        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;
 
@@ -149,12 +149,12 @@ __bitmap_insert(
 
        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;
@@ -235,7 +235,7 @@ bitmap_set(
 
 #if 0  /* Unused, provided for completeness. */
 /* Clear a region of bits. */
-bool
+int
 bitmap_clear(
        struct bitmap           *bmap,
        uint64_t                start,
@@ -259,7 +259,7 @@ bitmap_clear(
        /* Nothing, we're done. */
        if (firstn == NULL && lastn == NULL) {
                pthread_mutex_unlock(&bmap->bt_lock);
-               return true;
+               return 0;
        }
 
        assert(firstn != NULL && lastn != NULL);
@@ -297,20 +297,23 @@ bitmap_clear(
                                        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
 
index c6ed25a95b51ca18035bb0a8196509b6de168a13..c4c99131336cfc59bd1253ba0575ca4373dcb05f 100644 (file)
@@ -490,13 +490,13 @@ rmap_store_ag_btree_rec(
        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) {
                        /*
index 88c719b3fd5f10ed36522e926bfad59a38da864d..8d976732d8e1befad86fd1275acc6af4b1382e8f 100644 (file)
@@ -193,7 +193,7 @@ report_data_loss(
        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);
 }
 
@@ -444,7 +444,7 @@ report_ioerr(
        (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);
 }
 
@@ -466,7 +466,7 @@ report_disk_ioerrs(
        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. */
@@ -596,7 +596,7 @@ remember_ioerr(
                return;
        }
 
-       ret = bitmap_set(tree, start, length);
+       ret = -bitmap_set(tree, start, length);
        if (ret)
                str_liberror(ctx, ret, _("setting bad block bitmap"));
 }
@@ -616,13 +616,13 @@ phase6_func(
        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;