Commit 462eb7d8 authored by Zhengyuan Liu's avatar Zhengyuan Liu Committed by Shaohua Li

raid5-cache: don't set STRIPE_R5C_PARTIAL_STRIPE flag while load stripe into cache

r5c_recovery_load_one_stripe should not set STRIPE_R5C_PARTIAL_STRIPE flag,as
the data-only stripe may be STRIPE_R5C_FULL_STRIPE stripe. The state machine
would release the stripe later and add it into neither r5c_cached_full_stripes
list or r5c_cached_partial_stripes list and set correct flag.
Reviewed-by: default avatarJackieLiu <liuyun01@kylinos.cn>
Signed-off-by: default avatarZhengyuan Liu <liuzhengyuan@kylinos.cn>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
parent f7b7bee7
......@@ -1919,7 +1919,6 @@ r5c_recovery_analyze_meta_block(struct r5l_log *log,
static void r5c_recovery_load_one_stripe(struct r5l_log *log,
struct stripe_head *sh)
{
struct r5conf *conf = sh->raid_conf;
struct r5dev *dev;
int i;
......@@ -1930,9 +1929,8 @@ static void r5c_recovery_load_one_stripe(struct r5l_log *log,
set_bit(R5_UPTODATE, &dev->flags);
}
}
set_bit(STRIPE_R5C_PARTIAL_STRIPE, &sh->state);
atomic_inc(&conf->r5c_cached_partial_stripes);
list_add_tail(&sh->r5c, &log->stripe_in_journal_list);
atomic_inc(&log->stripe_in_journal_count);
}
/*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment