summaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5-cache.c
diff options
context:
space:
mode:
authorJackieLiu2016-11-28 09:19:19 +0100
committerShaohua Li2016-11-29 23:46:21 +0100
commitfc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee (patch)
tree8a69cc0d3019d18a17473314cffd5a6602eb5643 /drivers/md/raid5-cache.c
parentmd/raid5-cache: remove unnecessary function parameters (diff)
downloadkernel-qcow2-linux-fc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee.tar.gz
kernel-qcow2-linux-fc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee.tar.xz
kernel-qcow2-linux-fc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee.zip
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/raid5-cache.c')
-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];