diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-02-23 11:46:34 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-03-13 11:34:19 -0400 |
commit | fe2f2891bef74d160f5890e5eda5b9247a51da7f (patch) | |
tree | 487b66fc2937df5f0d899b35987cd87e90e0afba | |
parent | c01fc75fe49eb1bc366e6e9ff4decc016bcf381d (diff) |
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>
-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 ec0121aeb5b7..b6a5f320a444 100644 --- a/fs/bcachefs/journal_io.c +++ b/fs/bcachefs/journal_io.c @@ -1106,7 +1106,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 8e7e95e8f9f2..e02cf8fb0c8d 100644 --- a/fs/bcachefs/super-io.c +++ b/fs/bcachefs/super-io.c @@ -1140,7 +1140,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; } @@ -1383,7 +1383,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; } @@ -1460,7 +1460,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) { @@ -1536,7 +1536,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); @@ -1642,7 +1642,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) \ |