• Ilya Dryomov's avatar
    libceph, rbd: new bio handling code (aka don't clone bios) · 5359a17d
    Ilya Dryomov authored
    The reason we clone bios is to be able to give each object request
    (and consequently each ceph_osd_data/ceph_msg_data item) its own
    pointer to a (list of) bio(s).  The messenger then initializes its
    cursor with cloned bio's ->bi_iter, so it knows where to start reading
    from/writing to.  That's all the cloned bios are used for: to determine
    each object request's starting position in the provided data buffer.
    
    Introduce ceph_bio_iter to do exactly that -- store position within bio
    list (i.e. pointer to bio) + position within that bio (i.e. bvec_iter).
    Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
    5359a17d
messenger.c 85.8 KB