rbd: fix type of snap_id in rbd_dev_v2_snap_info()

The type of the snap_id local variable is defined with the
wrong byte order.  Fix that.

Signed-off-by: Alex Elder <elder@inktank.com>
rbd: temp layering support

Pretend we support layering...

Signed-off-by: Alex Elder <elder@inktank.com>
rbd: probe the parent of an image if present

Call the probe function for the parent device.

Signed-off-by: Alex Elder <elder@inktank.com>
rbd: make rbd_segment_name() return const

Make explicit that the string returned by rbd_segment_name() is not
intended to be modified.

Signed-off-by: Alex Elder <elder@inktank.com>
rbd: new request tracking code

This patch fully implements the new request tracking code for rbd
I/O requests.

Each I/O request to an rbd image will get an rbd_image_request
structure allocated to track it.  This provides access to all
information about the original request, as well as access to the set
of one or more osd object requests that are initiated as a result of
the image request.

An rbd_obj_request structure defines a request sent to a single osd
object possibly as part of an rbd image request.  An rbd object
request refers to a ceph_osd_request structure built up to represent
the request; for now it will contain a single osd operation.  It
also provides space to hold the result status and the version of the
object when the osd request completes.

Signed-off-by: Alex Elder <elder@inktank.com>
rbd: get snapc in rbd_image_request_create()

Move the acquisition of the snapshot context reference inside
rbd_image_request_create().  I'll fold this into the previous
commit, I just don't want to mess with what's working already.

Signed-off-by: Alex Elder <elder@inktank.com>