Commit b5b09be3 authored by Alex Elder's avatar Alex Elder

rbd: fix image request leak on parent read

When a read for a layered image object finds the target object
doesn't exist, a read image request for the parent image is created
and submitted.  When that completes, the callback routine was
not releasing that parent image request.  Fix that.

The slab allocation stuff just added has greatly simplified the
search for the source of this memory leak.

This resolves:
    http://tracker.ceph.com/issues/4803Signed-off-by: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
parent 5522ae0b
...@@ -2547,6 +2547,7 @@ static void rbd_img_parent_read_callback(struct rbd_img_request *img_request) ...@@ -2547,6 +2547,7 @@ static void rbd_img_parent_read_callback(struct rbd_img_request *img_request)
obj_request->xferred = img_request->xferred; obj_request->xferred = img_request->xferred;
} }
out: out:
rbd_img_request_put(img_request);
rbd_img_obj_request_read_callback(obj_request); rbd_img_obj_request_read_callback(obj_request);
rbd_obj_request_complete(obj_request); rbd_obj_request_complete(obj_request);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment