diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-02-23 17:46:34 +0100 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 23:09:25 +0200 |
commit | 82697a10dd4b9a6f7c6f98a525778d032db2f2fb (patch) | |
tree | 3c170b18bbfc5cdcdcb5253ac390a0c0ee1eecca /fs/bcachefs | |
parent | bcachefs: Improve some btree node read error messages (diff) | |
download | linux-82697a10dd4b9a6f7c6f98a525778d032db2f2fb.tar.xz linux-82697a10dd4b9a6f7c6f98a525778d032db2f2fb.zip |
bcachefs: Fix 32 bit build
vstruct_bytes() was returning a u64 - it should be a size_t, the corect
type for the size of anything that fits in memory.
Also replace a 64 bit divide with div_u64().
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r-- | fs/bcachefs/journal_io.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/quota.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/super-io.c | 10 | ||||
-rw-r--r-- | fs/bcachefs/vstructs.h | 2 |
4 files changed, 8 insertions, 8 deletions
diff --git a/fs/bcachefs/journal_io.c b/fs/bcachefs/journal_io.c index b8fcc801a666..302af332b632 100644 --- a/fs/bcachefs/journal_io.c +++ b/fs/bcachefs/journal_io.c @@ -1105,7 +1105,7 @@ int bch2_journal_read(struct bch_fs *c, struct list_head *list, struct journal_replay *p = list_prev_entry(i, list); bch2_journal_ptrs_to_text(&out, c, p); - pr_buf(&out, " size %llu", vstruct_sectors(&p->j, c->block_bits)); + pr_buf(&out, " size %zu", vstruct_sectors(&p->j, c->block_bits)); } else sprintf(buf1, "(none)"); bch2_journal_ptrs_to_text(&PBUF(buf2), c, i); diff --git a/fs/bcachefs/quota.c b/fs/bcachefs/quota.c index b7ef8fa7bbc9..ca029a00e7b8 100644 --- a/fs/bcachefs/quota.c +++ b/fs/bcachefs/quota.c @@ -23,7 +23,7 @@ static int bch2_sb_quota_validate(struct bch_sb *sb, struct bch_sb_field *f, struct bch_sb_field_quota *q = field_to_type(f, quota); if (vstruct_bytes(&q->field) < sizeof(*q)) { - pr_buf(err, "wrong size (got %llu should be %zu)", + pr_buf(err, "wrong size (got %zu should be %zu)", vstruct_bytes(&q->field), sizeof(*q)); return -EINVAL; } diff --git a/fs/bcachefs/super-io.c b/fs/bcachefs/super-io.c index f95c9d754530..47eeb48c8c60 100644 --- a/fs/bcachefs/super-io.c +++ b/fs/bcachefs/super-io.c @@ -1147,7 +1147,7 @@ static int bch2_sb_crypt_validate(struct bch_sb *sb, struct bch_sb_field_crypt *crypt = field_to_type(f, crypt); if (vstruct_bytes(&crypt->field) < sizeof(*crypt)) { - pr_buf(err, "wrong size (got %llu should be %zu)", + pr_buf(err, "wrong size (got %zu should be %zu)", vstruct_bytes(&crypt->field), sizeof(*crypt)); return -EINVAL; } @@ -1390,7 +1390,7 @@ static int bch2_sb_clean_validate(struct bch_sb *sb, struct bch_sb_field_clean *clean = field_to_type(f, clean); if (vstruct_bytes(&clean->field) < sizeof(*clean)) { - pr_buf(err, "wrong size (got %llu should be %zu)", + pr_buf(err, "wrong size (got %zu should be %zu)", vstruct_bytes(&clean->field), sizeof(*clean)); return -EINVAL; } @@ -1467,7 +1467,7 @@ void bch2_sb_field_to_text(struct printbuf *out, struct bch_sb *sb, else pr_buf(out, "(unknown field %u)", type); - pr_buf(out, " (size %llu):", vstruct_bytes(f)); + pr_buf(out, " (size %zu):", vstruct_bytes(f)); pr_newline(out); if (ops && ops->to_text) { @@ -1543,7 +1543,7 @@ void bch2_sb_to_text(struct printbuf *out, struct bch_sb *sb, pr_buf(out, "Created: "); if (sb->time_base_lo) - pr_time(out, le64_to_cpu(sb->time_base_lo) / NSEC_PER_SEC); + pr_time(out, div_u64(le64_to_cpu(sb->time_base_lo), NSEC_PER_SEC)); else pr_buf(out, "(not set)"); pr_newline(out); @@ -1649,7 +1649,7 @@ void bch2_sb_to_text(struct printbuf *out, struct bch_sb *sb, bch2_flags_to_text(out, bch2_sb_fields, fields_have); pr_newline(out); - pr_buf(out, "Superblock size: %llu", vstruct_bytes(sb)); + pr_buf(out, "Superblock size: %zu", vstruct_bytes(sb)); pr_newline(out); if (print_layout) { diff --git a/fs/bcachefs/vstructs.h b/fs/bcachefs/vstructs.h index c099cdc0605f..53a694d71967 100644 --- a/fs/bcachefs/vstructs.h +++ b/fs/bcachefs/vstructs.h @@ -20,7 +20,7 @@ ({ \ BUILD_BUG_ON(offsetof(_type, _data) % sizeof(u64)); \ \ - (offsetof(_type, _data) + (_u64s) * sizeof(u64)); \ + (size_t) (offsetof(_type, _data) + (_u64s) * sizeof(u64)); \ }) #define vstruct_bytes(_s) \ |