summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-02-22 09:29:56 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2025-02-22 09:29:56 -0500
commit86cbeaf1c2b76b1b1d9e440d2f021df66d868b2e (patch)
tree4b0d05876cf05b0440e4aab32d10671d5830016e
parentdd1a882d17d6302bd3f48f87aec4018b75749de6 (diff)
fix bch2_super_write() for bs > 4096
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--c_src/libbcachefs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/c_src/libbcachefs.c b/c_src/libbcachefs.c
index ea5629e4..9553ed9e 100644
--- a/c_src/libbcachefs.c
+++ b/c_src/libbcachefs.c
@@ -352,9 +352,9 @@ void bch2_super_write(int fd, struct bch_sb *sb)
if (sb->offset == BCH_SB_SECTOR) {
/* Write backup layout */
- BUG_ON(bs > 4096);
+ unsigned buflen = max(bs, 4096);
- char *buf = aligned_alloc(bs, bs);
+ char *buf = aligned_alloc(buflen, buflen);
xpread(fd, buf, bs, 4096 - bs);
memcpy(buf + bs - sizeof(sb->layout),
&sb->layout,