rbd: fix error paths in rbd_img_request_fill()
authorIlya Dryomov <ilya.dryomov@inktank.com>
Tue, 4 Mar 2014 09:57:17 +0000 (11:57 +0200)
committerYan, Zheng <zheng.z.yan@intel.com>
Thu, 3 Apr 2014 02:33:51 +0000 (10:33 +0800)
commit42dd037c08c7cd6e3e9af7824b0c1d063f838885
tree22feb77f7d409ff80ec6dde66c340b595a8839f7
parent62054da65c626dd603190c16805f92cf2cf47d4c
rbd: fix error paths in rbd_img_request_fill()

Doing rbd_obj_request_put() in rbd_img_request_fill() error paths is
not only insufficient, but also triggers an rbd_assert() in
rbd_obj_request_destroy():

    Assertion failure in rbd_obj_request_destroy() at line 1867:

    rbd_assert(obj_request->img_request == NULL);

rbd_img_obj_request_add() adds obj_requests to the img_request, the
opposite is rbd_img_obj_request_del().  Use it.

Fixes: http://tracker.ceph.com/issues/7327

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
drivers/block/rbd.c