bcachefs: Fix 32 bit build failures
authorBrett Holman <bholman.devel@gmail.com>
Tue, 17 Aug 2021 23:14:26 +0000 (17:14 -0600)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:10 +0000 (17:09 -0400)
This fix replaces multiple 64 bit divisions with do_div() equivalents.

Signed-off-by: Brett Holman <bholman.devel@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/buckets.c
fs/bcachefs/tests.c

index e00c02dcb63ea9e92eaf55021f26dc69572e49db..d7994229ad5ae7413110ccb17a59299191098b5a 100644 (file)
@@ -670,7 +670,7 @@ static s64 ptr_disk_sectors(s64 sectors, struct extent_ptr_decoded p)
 
        return p.crc.compression_type &&
                p.crc.compression_type != BCH_COMPRESSION_TYPE_incompressible
-               ? DIV_ROUND_UP(sectors * p.crc.compressed_size,
+               ? DIV_ROUND_UP_ULL(sectors * p.crc.compressed_size,
                               p.crc.uncompressed_size)
                : sectors;
 }
index 9c7812f6293565632715363a19536ab8a59307b5..43b514974d91b7dcd7f2eef2b779eaf9e97e27a0 100644 (file)
@@ -778,7 +778,7 @@ static int btree_perf_test_thread(void *data)
                wait_event(j->ready_wait, !atomic_read(&j->ready));
        }
 
-       ret = j->fn(j->c, j->nr / j->nr_threads);
+       ret = j->fn(j->c, div64_u64(j->nr, j->nr_threads));
        if (ret)
                j->ret = ret;
 
@@ -854,11 +854,11 @@ int bch2_btree_perf_test(struct bch_fs *c, const char *testname,
 
        scnprintf(name_buf, sizeof(name_buf), "%s:", testname);
        bch2_hprint(&PBUF(nr_buf), nr);
-       bch2_hprint(&PBUF(per_sec_buf), nr * NSEC_PER_SEC / time);
+       bch2_hprint(&PBUF(per_sec_buf), div64_u64(nr * NSEC_PER_SEC, time));
        printk(KERN_INFO "%-12s %s with %u threads in %5llu sec, %5llu nsec per iter, %5s per sec\n",
                name_buf, nr_buf, nr_threads,
-               time / NSEC_PER_SEC,
-               time * nr_threads / nr,
+               div_u64(time, NSEC_PER_SEC),
+               div_u64(time * nr_threads, nr),
                per_sec_buf);
        return j.ret;
 }