1. 14 2月, 2013 4 次提交
    • A
      rbd: implement sync object read with new code · 788e2df3
      Alex Elder 提交于
      Reimplement the synchronous read operation used for reading a
      version 1 header using the new request tracking code.  Name the
      resulting function rbd_obj_read_sync() to better reflect that
      it's a full object operation, not an object request.  To do this,
      implement a new OBJ_REQUEST_PAGES object request type.
      
      This implements a new mechanism to allow the caller to wait for
      completion for an rbd_obj_request by calling rbd_obj_request_wait().
      
      This partially resolves:
          http://tracker.newdream.net/issues/3755Signed-off-by: NAlex Elder <elder@inktank.com>
      Reviewed-by: NJosh Durgin <josh.durgin@inktank.com>
      788e2df3
    • A
      rbd: kill rbd_req_coll and rbd_request · 7d250b94
      Alex Elder 提交于
      The two remaining callers of rbd_do_request() always pass a null
      collection pointer, so the "coll" and "coll_index" parameters are
      not needed.  There is no other use of that data structure, so it
      can be eliminated.
      
      Deleting them means there is no need to allocate a rbd_request
      structure for the callback function.  And since that's the only use
      of *that* structure, it too can be eliminated.
      Signed-off-by: NAlex Elder <elder@inktank.com>
      Reviewed-by: NJosh Durgin <josh.durgin@inktank.com>
      7d250b94
    • A
      rbd: kill rbd_rq_fn() and all other related code · 2250a71b
      Alex Elder 提交于
      Now that the request function has been replaced by one using the new
      request management data structures the old one can go away.
      Deleting it makes rbd_dev_do_request() no longer needed, and
      deleting that makes other functions unneeded, and so on.
      Signed-off-by: NAlex Elder <elder@inktank.com>
      Reviewed-by: NJosh Durgin <josh.durgin@inktank.com>
      2250a71b
    • A
      rbd: new request tracking code · bf0d5f50
      Alex Elder 提交于
      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: NAlex Elder <elder@inktank.com>
      Reviewed-by: NJosh Durgin <josh.durgin@inktank.com>
      bf0d5f50
  2. 26 1月, 2013 3 次提交
  3. 18 1月, 2013 33 次提交