• A
    ceph: build osd request message later for writepages · e5975c7c
    Alex Elder 提交于
    Hold off building the osd request message in ceph_writepages_start()
    until just before it will be submitted to the osd client for
    execution.
    
    We'll still create the request and allocate the page pointer array
    after we learn we have at least one page to write.  A local variable
    will be used to keep track of the allocated array of pages.  Wait
    until just before submitting the request for assigning that page
    array pointer to the request message.
    
    Create ands use a new function osd_req_op_extent_update() whose
    purpose is to serve this one spot where the length value supplied
    when an osd request's op was initially formatted might need to get
    changed (reduced, never increased) before submitting the request.
    
    Previously, ceph_writepages_start() assigned the message header's
    data length because of this update.  That's no longer necessary,
    because ceph_osdc_build_request() will recalculate the right
    value to use based on the content of the ops in the request.
    Signed-off-by: NAlex Elder <elder@inktank.com>
    Reviewed-by: NJosh Durgin <josh.durgin@inktank.com>
    e5975c7c
addr.c 34.1 KB