Adds lock for create from vol/snap to avoid race conditions
This patch protects create from volume/snapshot by using a
lockfile to protect the operation from concurrent deletes of
the volume/snapshot used in the create operation.
Currently, if a volume/snapshot is deleted while a volume is
being created from it that delete may complete during the
create operation thus leaving the new volume in error or stuck
state. This lock will ensure that:
(a) if a create of VolA from snap/volB is in progress, any
delete requests for snap/volB will wait until the create
is complete.
(b) if a delete of snap/volA is in progress, any create from
snap/volA will wait until snap/volA delete is complete.
Co-authored-by: Takashi Natsume <natsume.takashi@lab.ntt.co.jp>
Closes-Bug:
1251334
Change-Id: Ie4bc0af789ab232593f55aa2f6b34345eb9b9929