Now it calculate bad block offset by bm_offset + bm_space. It should add sb_offset. Fixes: 1b7eb672(super1: fix setting bad block log offset in write_init_super1()) Signed-off-by: Xiao Ni <xni@xxxxxxxxxx> --- super1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/super1.c b/super1.c index b85dc20..682655a 100644 --- a/super1.c +++ b/super1.c @@ -2012,7 +2012,7 @@ static int write_init_super1(struct supertype *st) sb->data_size = __cpu_to_le64(dsize - data_offset); if (data_offset >= sb_offset+bm_offset+bm_space+8) { sb->bblog_size = __cpu_to_le16(8); - sb->bblog_offset = __cpu_to_le32(bm_offset + + sb->bblog_offset = __cpu_to_le32(sb_offset + bm_offset + bm_space); } else if (data_offset >= sb_offset + 16) { sb->bblog_size = __cpu_to_le16(8); -- 2.7.5