• Alex Elder's avatar
    rbd: have rbd_obj_method_sync() return transfer count · 57385b51
    Alex Elder authored
    Callers of rbd_obj_method_sync() don't know how many bytes of data
    got returned by the class method call.  As a result, they have been
    assuming enough got returned to decode whatever was expected.
    
    This isn't safe.  We know how many bytes got transferred, so have
    rbd_obj_method_sync() return that amount (rather than just 0) if
    the call is successful.
    
    Change all callers to use this return value to ensure decoding of
    the results is done safely.
    
    On the other hand, most callers of rbd_obj_method_sync() only
    indicate success or failure, so all of *their* callers can simply
    test for non-zero result.
    
    This resolves:
        http://tracker.ceph.com/issues/4773Signed-off-by: default avatarAlex Elder <elder@inktank.com>
    Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
    57385b51
rbd.c 129 KB