sheepdog: serialize requests to overwrapping area
Current sheepdog driver only serializes create requests in oid
unit. This mechanism isn't enough for handling requests to
overwrapping area spanning multiple oids, so it can result bugs like
below:
https://bugs.launchpad.net/sheepdog-project/+bug/
1456421
This patch adds a new serialization mechanism for the problem. The
difference from the old one is:
1. serialize entire aiocb if their targetting areas overwrap
2. serialize all requests (read, write, and discard), not only creates
This patch also removes the old mechanism because the new one can be
an alternative.
Cc: Kevin Wolf <[email protected]>
Cc: Stefan Hajnoczi <[email protected]>
Cc: Teruaki Ishizaki <[email protected]>
Cc: Vasiliy Tolstov <[email protected]>
Signed-off-by: Hitoshi Mitake <[email protected]>
Tested-by: Vasiliy Tolstov <[email protected]>
Signed-off-by: Jeff Cody <[email protected]>