Преглед на файлове

raid5-cache: correct condition for empty metadata write

As long as we recover one metadata block, we should write the empty metadata
write. The original code could make recovery corrupted if only one meta is
valid.

Reported-by: Zhengyuan Liu <liuzhengyuan@kylinos.cn>
Signed-off-by: Shaohua Li <shli@fb.com>
Shaohua Li преди 8 години
родител
ревизия
9a8b27fac5
променени са 1 файла, в които са добавени 1 реда и са изтрити 1 реда
  1. 1 1
      drivers/md/raid5-cache.c

+ 1 - 1
drivers/md/raid5-cache.c

@@ -1087,7 +1087,7 @@ static int r5l_recovery_log(struct r5l_log *log)
 	 * 1's seq + 10 and let superblock points to meta2. The same recovery will
 	 * 1's seq + 10 and let superblock points to meta2. The same recovery will
 	 * not think meta 3 is a valid meta, because its seq doesn't match
 	 * not think meta 3 is a valid meta, because its seq doesn't match
 	 */
 	 */
-	if (ctx.seq > log->last_cp_seq + 1) {
+	if (ctx.seq > log->last_cp_seq) {
 		int ret;
 		int ret;
 
 
 		ret = r5l_log_write_empty_meta_block(log, ctx.pos, ctx.seq + 10);
 		ret = r5l_log_write_empty_meta_block(log, ctx.pos, ctx.seq + 10);