summaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorJackieLiu <liuyun01@kylinos.cn>2016-11-28 16:19:19 +0800
committerShaohua Li <shli@fb.com>2016-11-29 14:46:21 -0800
commitfc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee (patch)
tree8a69cc0d3019d18a17473314cffd5a6602eb5643 /drivers/md
parent9b69173e5c6000b2c6fafc5085dcd7b173f073c8 (diff)
downloadlinux-fc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee.tar.bz2
md/raid5-cache: use ring add to prevent overflow
'write_pos' must be protected with 'r5l_ring_add', or it may overflow Signed-off-by: JackieLiu <liuyun01@kylinos.cn> Reviewed-by: Song Liu <songliubraving@fb.com> Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/raid5-cache.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/raid5-cache.c b/drivers/md/raid5-cache.c
index 1842ecbf95a1..5ef20c57731f 100644
--- a/drivers/md/raid5-cache.c
+++ b/drivers/md/raid5-cache.c
@@ -2084,7 +2084,7 @@ r5c_recovery_rewrite_data_only_stripes(struct r5l_log *log,
ctx->pos, ctx->seq);
mb = page_address(page);
offset = le32_to_cpu(mb->meta_size);
- write_pos = ctx->pos + BLOCK_SECTORS;
+ write_pos = r5l_ring_add(log, ctx->pos, BLOCK_SECTORS);
for (i = sh->disks; i--; ) {
struct r5dev *dev = &sh->dev[i];