rbd: end I/O the entire obj_request on error
rbd: end I/O the entire obj_request on error

When we end I/O struct request with error, we need to pass
obj_request->length as @nr_bytes so that the entire obj_request worth
of bytes is completed.  Otherwise block layer ends up confused and we
trip on

    rbd_assert(more ^ (which == img_request->obj_request_count));

in rbd_img_obj_callback() due to more being true no matter what.  We
already do it in most cases but we are missing some, in particular
those where we don't even get a chance to submit any obj_requests, due
to an early -ENOMEM for example.

A number of obj_request->xferred assignments seem to be redundant but
I haven't touched any of obj_request->xferred stuff to keep this small
and isolated.

Cc: Alex Elder <f429030cf5c0faf36fac3d102073b6e63a647baa@linaro.org>
Cc: 4fbacc2fa0ffdbb11bf1ad6925b886ebd08dd15f@vger.kernel.org # 3.10+
Reported-by: Shawn Edwards <9e027af78ab8811bbc433e20c8b0b3148b1ba69b@gmail.com>
Reviewed-by: Sage Weil <6dd34506bbd5e58221bbb3e4732d97c91f02277b@redhat.com>
Signed-off-by: Ilya Dryomov <152d4c5bebf13a5b809d42b4d789cf9d887e6698@gmail.com>

KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs