mirror: fix request throttling in drive-mirror
commitcf56a3c632d039d00e29dfe8676321d6d349190c
authorDenis V. Lunev <den@openvz.org>
Wed, 22 Jun 2016 12:35:27 +0000 (22 15:35 +0300)
committerJeff Cody <jcody@redhat.com>
Tue, 19 Jul 2016 21:03:44 +0000 (19 17:03 -0400)
tree1445c0baf0315e691387634eecf2ad54be375f45
parent4b5004d9fc5b7d8e4447dc81c2f26477c2d590f7
mirror: fix request throttling in drive-mirror

There are 2 deficiencies here:
- mirror_iteration could start several requests inside. Thus we could
  simply have more in_flight requests than MAX_IN_FLIGHT.
- keeping this in mind throttling in mirror_run which is checking
  s->in_flight == MAX_IN_FLIGHT is wrong.

The patch adds the check and throttling into mirror_iteration and fixes
the check in mirror_run() to be sure.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1466598927-5990-1-git-send-email-den@openvz.org
CC: Jeff Cody <jcody@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
Signed-off-by: Jeff Cody <jcody@redhat.com>
(cherry picked from commit e648dc95c28fbca12e67be26a1fc4b9a0676c3fe)
block/mirror.c