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: JackieLiu <liuyun01@kylinos.cn> Signed-off-by: Zhengyuan Liu <liuzhengyuan@kylinos.cn> Signed-off-by: Shaohua Li <shli@fb.com>
This commit is contained in:
parent
f7b7bee75e
commit
462eb7d872
|
@ -1919,7 +1919,6 @@ r5c_recovery_analyze_meta_block(struct r5l_log *log,
|
||||||
static void r5c_recovery_load_one_stripe(struct r5l_log *log,
|
static void r5c_recovery_load_one_stripe(struct r5l_log *log,
|
||||||
struct stripe_head *sh)
|
struct stripe_head *sh)
|
||||||
{
|
{
|
||||||
struct r5conf *conf = sh->raid_conf;
|
|
||||||
struct r5dev *dev;
|
struct r5dev *dev;
|
||||||
int i;
|
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(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);
|
list_add_tail(&sh->r5c, &log->stripe_in_journal_list);
|
||||||
|
atomic_inc(&log->stripe_in_journal_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue