rbd: zero return code in rbd_dev_image_id()
authorAlex Elder <elder@inktank.com>
Thu, 11 Oct 2012 04:19:13 +0000 (21:19 -0700)
committerAlex Elder <elder@inktank.com>
Fri, 26 Oct 2012 22:18:08 +0000 (17:18 -0500)
commita0ea3a40fd20b8c66381f747c454f89d6d1f50d4
tree044dcaf850e2adf158deeea3a8091cba6a5a2e10
parentb213e0b1a62637b2a9395a34349b13d73ca2b90a
rbd: zero return code in rbd_dev_image_id()

When rbd_dev_probe() calls rbd_dev_image_id() it expects to get
a 0 return code if successful, but it is getting a positive value.

The reason is that rbd_dev_image_id() returns the value it gets from
rbd_req_sync_exec(), which returns the number of bytes read in as a
result of the request.  (This ultimately comes from
ceph_copy_from_page_vector() in rbd_req_sync_op()).

Force the return value to 0 when successful in rbd_dev_image_id().
Do the same in rbd_dev_v2_object_prefix().

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