• A
    rbd: assign watch request more directly · 8b84de79
    Alex Elder 提交于
    Both rbd_req_sync_op() and rbd_do_request() have a "linger"
    parameter, which is the address of a pointer that should refer to
    the osd request structure used to issue a request to an osd.
    
    Only one case ever supplies a non-null "linger" argument: an
    CEPH_OSD_OP_WATCH start.  And in that one case it is assigned
    &rbd_dev->watch_request.
    
    Within rbd_do_request() (where the assignment ultimately gets made)
    we know the rbd_dev and therefore its watch_request field.  We
    also know whether the op being sent is CEPH_OSD_OP_WATCH start.
    
    Stop opaquely passing down the "linger" pointer, and instead just
    assign the value directly inside rbd_do_request() when it's needed.
    
    This makes it unnecessary for rbd_req_sync_watch() to make
    arrangements to hold a value that's not available until a
    bit later.  This more clearly separates setting up a watch
    request from submitting it.
    Signed-off-by: NAlex Elder <elder@inktank.com>
    Reviewed-by: NJosh Durgin <josh.durgin@inktank.com>
    8b84de79
rbd.c 91.1 KB