]> git.baikalelectronics.ru Git - kernel.git/commit
blk-throttle: Some cleanups and race fixes in limit update code
authorVivek Goyal <vgoyal@redhat.com>
Mon, 7 Mar 2011 20:09:32 +0000 (21:09 +0100)
committerJens Axboe <jaxboe@fusionio.com>
Mon, 7 Mar 2011 20:09:32 +0000 (21:09 +0100)
commit5a6f9e10a53fd108f1395428ac66388fe9e63b57
tree45a4af16e2a76cbf5866cfb3f284956988918a13
parentcf7e3199fb6dd1a0b10e6e0edb82b8466e6a3d7e
blk-throttle: Some cleanups and race fixes in limit  update code

When throttle group limits are updated through cgroups, a thread is
woken up to process these updates. While reviewing that code, oleg noted
couple of race conditions existed in the code and he also suggested that
code can be simplified.

This patch fixes the races simplifies the code based on Oleg's suggestions:

- Use xchg().
- Introduced a common function throtl_update_blkio_group_common()
          which is shared now by all iops/bps update functions.

Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Fixed a merge issue, throtl_schedule_delayed_work() takes throtl_data
as the argument now, not the queue.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/blk-throttle.c