Hi, On 2019/7/19 16:49, Xiao Ni wrote: > 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); bblog_offset is used as the signed offset from the sb_offset not the offset from the start of the device, so I don't think the addition of sb_offset is correct. Regards, Tao > } else if (data_offset >= sb_offset + 16) { > sb->bblog_size = __cpu_to_le16(8); >