Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28cd88e2 authored by Zhengyuan Liu's avatar Zhengyuan Liu Committed by Shaohua Li
Browse files

md/raid5: initialize next_checkpoint field before use



No initial operation was done to this field when we
load/recovery the log, it got assignment only when IO
to raid disk was finished. So r5l_quiesce may use wrong
next_checkpoint to reclaim log space, that would make
reclaimable space calculation confused.

Signed-off-by: default avatarZhengyuan Liu <liuzhengyuan@kylinos.cn>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
parent 579ed34f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1096,6 +1096,8 @@ static int r5l_recovery_log(struct r5l_log *log)
		log->seq = ctx.seq + 11;
		log->log_start = r5l_ring_add(log, ctx.pos, BLOCK_SECTORS);
		r5l_write_super(log, ctx.pos);
		log->last_checkpoint = ctx.pos;
		log->next_checkpoint = ctx.pos;
	} else {
		log->log_start = ctx.pos;
		log->seq = ctx.seq;
@@ -1168,6 +1170,7 @@ static int r5l_load_log(struct r5l_log *log)
	if (log->max_free_space > RECLAIM_MAX_FREE_SPACE)
		log->max_free_space = RECLAIM_MAX_FREE_SPACE;
	log->last_checkpoint = cp;
	log->next_checkpoint = cp;

	__free_page(page);