• Alex Elder's avatar
    rbd: new request tracking code · bf0d5f50
    Alex Elder authored
    This patch fully implements the new request tracking code for rbd
    I/O requests.
    
    Each I/O request to an rbd image will get an rbd_image_request
    structure allocated to track it.  This provides access to all
    information about the original request, as well as access to the
    set of one or more object requests that are initiated as a result
    of the image request.
    
    An rbd_obj_request structure defines a request sent to a single osd
    object (possibly) as part of an rbd image request.  An rbd object
    request refers to a ceph_osd_request structure built up to represent
    the request; for now it will contain a single osd operation.  It
    also provides space to hold the result status and the version of the
    object when the osd request completes.
    
    An rbd_obj_request structure can also stand on its own.  This will
    be used for reading the version 1 header object, for issuing
    acknowledgements to event notifications, and for making object
    method calls.
    
    All rbd object requests now complete asynchronously with respect
    to the osd client--they supply a common callback routine.
    
    This resolves:
        http://tracker.newdream.net/issues/3741Signed-off-by: default avatarAlex Elder <elder@inktank.com>
    Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
    bf0d5f50
rbd.c 107 KB