In function write_init_super1(): If "rv = store_super1(st, di->fd)" return error and the di is the last. Then the di = NULL && rv > 0, so exec: if (rv) fprintf(stderr, Name ": Failed to write metadata to%s\n", di->devname); will be segmentation fault. Signed-off-by: majianpeng <majianpeng@xxxxxxxxx> --- super1.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/super1.c b/super1.c index 4f20cc3..37b7a90 100644 --- a/super1.c +++ b/super1.c @@ -1242,6 +1242,8 @@ static int write_init_super1(struct supertype *st) rv = st->ss->write_bitmap(st, di->fd); close(di->fd); di->fd = -1; + if (rv) + goto error_out; } error_out: if (rv) -- 1.7.5.4 -------------- majianpeng 2012-05-25 -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html