rbd: fix a bug in resizing a mapping
authorAlex Elder <elder@inktank.com>
Fri, 26 Apr 2013 20:44:35 +0000 (15:44 -0500)
committerSage Weil <sage@inktank.com>
Thu, 2 May 2013 04:19:45 +0000 (21:19 -0700)
commite28626a08b3e7412158551a639dd36887e2d728d
tree41edcdbb5024d3cecea52af2bebb25ac2f6a5cda
parent2e9f7f1c0de23156e225046f10fad939a4017e97
rbd: fix a bug in resizing a mapping

When a snapshot context update occurs, rbd_update_mapping_size() is
called to set the capacity of the disk to record the updated
size of the image in case it has changed.

There's a bug though.  The mapping size is in units of *bytes*.  The
code that updates the mapping size field is assigning a value that
has been scaled down to *sectors*.

Fix that.  Also, check to see if the size has actually changed, and
don't bother updating things (specifically, calling set_capacity())
if it has not.

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

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