summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-02-23 19:46:34 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:25 +0300
commit82697a10dd4b9a6f7c6f98a525778d032db2f2fb (patch)
tree3c170b18bbfc5cdcdcb5253ac390a0c0ee1eecca
parent78a8f36280e178df4e78382c82a20e3af1704e65 (diff)
downloadlinux-82697a10dd4b9a6f7c6f98a525778d032db2f2fb.tar.xz
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.c2
-rw-r--r--fs/bcachefs/quota.c2
-rw-r--r--fs/bcachefs/super-io.c10
-rw-r--r--fs/bcachefs/vstructs.h2
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) \