Skip to content
  • Ilya Dryomov's avatar
    libceph: drop last_piece logic from write_partial_message_data() · 1f6b821a
    Ilya Dryomov authored
    last_piece is for the last piece in the current data item, not in the
    entire data payload of the message.  This is harmful for messages with
    multiple data items.  On top of that, we don't need to signal the end
    of a data payload either because it is always followed by a footer.
    
    We used to signal "more" unconditionally, until commit fe38a2b6
    ("libceph: start defining message data cursor").  Part of a large
    series, it introduced cursor->last_piece and also mistakenly inverted
    the hint by passing last_piece for "more".  This was corrected with
    commit c2cfa194 ("libceph: Fix ceph_tcp_sendpage()'s more boolean
    usage").
    
    As it is, last_piece is not helping at all: because Nagle algorithm is
    disabled, for a simple message with two 512-byte data items we end up
    emitting three packets: front + first data item, second data item and
    footer.  Go back to the original pre-fe38a2b6
    
     behavior -- a single
    packet in most cases.
    
    Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
    1f6b821a