• Alex Elder's avatar
    libceph: kill osd request r_trail · 95e072eb
    Alex Elder authored
    The osd trail is a pagelist, used only for a CALL osd operation
    to hold the class and method names, along with any input data for
    the call.
    
    It is only currently used by the rbd client, and when it's used it
    is the only bit of outbound data in the osd request.  Since we
    already support (non-trail) pagelist data in a message, we can
    just save this outbound CALL data in the "normal" pagelist rather
    than the trail, and get rid of the trail entirely.
    
    The existing pagelist support depends on the pagelist being
    dynamically allocated, and ownership of it is passed to the
    messenger once it's been attached to a message.  (That is to say,
    the messenger releases and frees the pagelist when it's done with
    it).  That means we need to dynamically allocate the pagelist also.
    
    Note that we simply assert that the allocation of a pagelist
    structure succeeds.  Appending to a pagelist might require a dynamic
    allocation, so we're already assuming we won't run into trouble
    doing so (we're just ignore any failures--and that should be fixed
    at some point).
    
    This resolves:
        http://tracker.ceph.com/issues/4407Signed-off-by: default avatarAlex Elder <elder@inktank.com>
    Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
    95e072eb
osd_client.c 58.4 KB