drbd: Implemented side-stepping in drbd_res_begin_io()
authorPhilipp Reisner <philipp.reisner@linbit.com>
Tue, 9 Nov 2010 12:59:41 +0000 (13:59 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Mar 2011 10:34:56 +0000 (11:34 +0100)
commitf91ab6282df251d28aa4ad1bd85194ebe0a0115b
tree1c696b201c9eaea365e8d80bb3956827a0a880e7
parent9d77a5fee9d2a1ea4cd9a841d27b107df5913b33
drbd: Implemented side-stepping in drbd_res_begin_io()

Before:
  drbd_rs_begin_io() locked app-IO out of an RS extent, and
  waited then until all previous app-IO in that area finished.
  (But not only until the disk-IO was finished but until the
   barrier/epoch ack came in for that == round trip time latency ++)

After:
  As soon as a new app-IO waits wants to start new IO on that
  RS extent, drbd_rs_begin_io() steps aside (clearing the
  BME_NO_WRITES flag again). It retries after 100ms.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_actlog.c