In __bch2_sb_field_resize, when a field's old a new size was 0, we were
doing an invalid write just past the end of the superblock.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
        BUG_ON(get_order(__vstruct_bytes(struct bch_sb, sb_u64s)) >
               sb->page_order);
 
-       if (!f) {
+       if (!f && !u64s) {
+               /* nothing to do: */
+       } else if (!f) {
                f = vstruct_last(sb->sb);
                memset(f, 0, sizeof(u64) * u64s);
                f->u64s = cpu_to_le32(u64s);