bcachefs: Fix a 64 bit divide on 32 bit
authorKent Overstreet <kent.overstreet@gmail.com>
Sat, 20 Feb 2021 10:05:18 +0000 (05:05 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:54 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/journal_io.c

index df5b375c367faeb7415b5767e25e32c318d0a224..40d452cedffdb883aa6f8d9ba1fe2c27b7db80c6 100644 (file)
@@ -836,13 +836,15 @@ static void bch2_journal_ptrs_to_text(struct printbuf *out, struct bch_fs *c,
 
        for (i = 0; i < j->nr_ptrs; i++) {
                struct bch_dev *ca = c->devs[j->ptrs[i].dev];
+               u64 offset;
+
+               div64_u64_rem(j->ptrs[i].offset, ca->mi.bucket_size, &offset);
 
                if (i)
                        pr_buf(out, " ");
                pr_buf(out, "%u:%llu (offset %llu)",
                       j->ptrs[i].dev,
-                      (u64) j->ptrs[i].offset,
-                      (u64) j->ptrs[i].offset % ca->mi.bucket_size);
+                      (u64) j->ptrs[i].offset, offset);
        }
 }