rbd: use rwsem to protect header updates
authorAlex Elder <elder@inktank.com>
Fri, 31 May 2013 22:40:45 +0000 (17:40 -0500)
committerSage Weil <sage@inktank.com>
Wed, 3 Jul 2013 22:32:43 +0000 (15:32 -0700)
commitcfbf6377b696d88461eef6966bef9e6184111183
tree6da8c0cfcd4aeb02a738a6c552f9a5f429139164
parent1ba0f1e7975ad07557f7a931522bdcd813ae35f6
rbd: use rwsem to protect header updates

Updating an image header needs to be protected to ensure it's
done consistently.  However distinct headers can be updated
concurrently without a problem.  Instead of using the global
control lock to serialize headder updates, just rely on the header
semaphore.  (It's already used, this just moves it out to cover
a broader section of the code.)

That leaves the control mutex protecting only the creation of rbd
clients, so rename it.

This resolves:
    http://tracker.ceph.com/issues/5222

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
drivers/block/rbd.c