drbd: Defer new writes when detecting conflicting writes
authorAndreas Gruenbacher <agruen@linbit.com>
Fri, 28 Jan 2011 14:53:51 +0000 (15:53 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Wed, 28 Sep 2011 08:26:34 +0000 (10:26 +0200)
commit6024fece739518c4c101c767d527fd624b096a34
tree4ec71ec6c2aff9c79faccb30bfeafcb3f20965ff
parentddd8877d3169ebda7272667fc3dc9768204a157f
drbd: Defer new writes when detecting conflicting writes

Before submitting a new local write request, wait for any conflicting
local or remote requests to complete.

We could assume that the new request occurred first and that the
conflicting requests overwrote it (and therefore discard the new
reques), but we know for sure that the new request occurred after the
conflicting requests and so this behavior would we weird.  We would also
end up with the wrong result if the new request is not fully contained
within the conflicting requests.

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