• Alex Elder's avatar
    libceph: use data cursor for message pagelist · 7fe1e5e5
    Alex Elder authored
    Switch to using the message cursor for the (non-trail) outgoing
    pagelist data item in a message if present.
    
    Notes on the logic changes in out_msg_pos_next():
        - only the mds client uses a ceph pagelist for message data;
        - if the mds client ever uses a pagelist, it never uses a page
          array (or anything else, for that matter) for data in the same
          message;
        - only the osd client uses the trail portion of a message data,
          and when it does, it never uses any other data fields for
          outgoing data in the same message; and finally
        - only the rbd client uses bio message data (never pagelist).
    
    Therefore out_msg_pos_next() can assume:
        - if we're in the trail portion of a message, the message data
          pagelist, data, and bio can be ignored; and
        - if there is a page list, there will never be any a bio or page
          array data, and vice-versa.
    Signed-off-by: default avatarAlex Elder <elder@inktank.com>
    Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
    7fe1e5e5
messenger.c 78.4 KB