bcachefs: Fix error message on bucket sector count overflow
authorKent Overstreet <kent.overstreet@gmail.com>
Thu, 27 Feb 2020 03:29:52 +0000 (22:29 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:35 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/buckets.c

index 9fae7d9fb4955021ca0163322a7d58c4d373c3b8..7e0412dac5ff0f4256c784e5f4dc72bbfa6b5aee 100644 (file)
@@ -1444,8 +1444,7 @@ static int bch2_trans_mark_pointer(struct btree_trans *trans,
        struct bkey_s_c k;
        struct bkey_alloc_unpacked u;
        struct bkey_i_alloc *a;
-       u16 *dst_sectors;
-       bool overflow;
+       u16 *dst_sectors, orig_sectors;
        int ret;
 
        ret = trans_get_key(trans, BTREE_ID_ALLOC,
@@ -1502,13 +1501,12 @@ static int bch2_trans_mark_pointer(struct btree_trans *trans,
        dst_sectors = !p.ptr.cached
                ? &u.dirty_sectors
                : &u.cached_sectors;
+       orig_sectors = *dst_sectors;
 
-       overflow = checked_add(*dst_sectors, sectors);
-
-       if (overflow) {
+       if (checked_add(*dst_sectors, sectors)) {
                bch2_fs_inconsistent(c,
                        "bucket sector count overflow: %u + %lli > U16_MAX",
-                       *dst_sectors, sectors);
+                       orig_sectors, sectors);
                /* return an error indicating that we need full fsck */
                ret = -EIO;
                goto out;