aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/md
diff options
context:
space:
mode:
authorZhengyuan Liu <liuzhengyuan@kylinos.cn>2016-11-26 10:57:14 +0800
committerShaohua Li <shli@fb.com>2016-11-29 14:45:14 -0800
commit462eb7d87297dae5837f3445b68b79e835ab0d6c (patch)
tree50567f8169c15e45079933a4d27dae7f0a754c3d /drivers/md
parentraid5-cache: add another check conditon before replaying one stripe (diff)
downloadwireguard-linux-462eb7d87297dae5837f3445b68b79e835ab0d6c.tar.xz
wireguard-linux-462eb7d87297dae5837f3445b68b79e835ab0d6c.zip
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>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/raid5-cache.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/md/raid5-cache.c b/drivers/md/raid5-cache.c
index 1ff3859bbcc3..b34b26dd3e45 100644
--- a/drivers/md/raid5-cache.c
+++ b/drivers/md/raid5-cache.c
@@ -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);
}
/*