Whamcloud - gitweb
* PtlMDUnlink() can no longer return PTL_MD_INUSE, since it commits the MD
for destruction. If no network I/O is current at the time, a
PTL_EVENT_UNLINK event is created.
* The 'unlinked_me' field of an event has been replaced by a simple flag
'unlinked' that is set if the event signals the destruction of the MD.
* Events have a new 'status' field. This is PTL_OK on successful
completion, and any other portals errno on completion with failure.
CWARN() messages in these callbacks log abnormal completion.
* All event callbacks changed to handle the UNLINK event, completion
status and unlinked flag.
* All abnormal completions changed to work with PltMDUnlink and the new
callbacks.
* Removed bd_complete from ptlrpc_bulk_desc and added bd_success.
Communications have completed when bd_network_rw gets cleared. If
bd_success is set, then bd_nob_transferred tells you how much data
was sent/received.
* Changed MDS and OST bulk completion to deal with failed bulk transfers.
The PtlBD server just LASSERTS things went OK, so we can be reminded to
implement better error handling there too.
* ptlrpc_wake_client_req() inline helper.
* Changed the lib/NAL interface as follows....
. cb_callback() is optional and defaults to calling the event queue's
callback if it is left NULL.
. cb_read(), cb_write(), cb_map(), cb_map_pages(), return PTL_OK on
success and another portals errno on failure.
. cb_send(), cb_send_pages(), cb_recv(), cb_recv_pages() return PTL_OK
if and only if they can commit to calling lib_finalize() when the
relevent message completes (possibly with error).
. cb_send(), cb_send_pages(), cb_recv(), cb_recv_pages() may not modify
the iovec/ptl_kiov_t they are passed, and must do I/O on the
subsection of this scatter/gather buffer starting at 'offset' for
'mlen' bytes. This greatly simplifies portals lib level descriptor
management at minimal expense to the NAL.
. portals lib now exports lib_extract_iov(), lib_extract_kiov() and the
other iov helpers take an additional 'offset' parameter, to simplify
offset buffer coding in the NAL.
. lib_parse() is void (i.e. returns no value).
. lib_finalize() takes an addition ptl_errno_t completion status.
...note that NALs other than qswnal and socknal need to have these
changes implemented properly and tested.
* Swapped some loose fprintf()s for CERROR()
* Dropped PORTAL_SLAB_ALLOC(); portals just uses PORTAL_ALLOC() now.
Since there are no slabs now, I also changed #ifdef PTL_USE_SLAB_CACHE
to #ifndef PTL_USE_LIB_FREELIST
* Changed lib_msg_alloc() so it is _never_ called with the statelock held,
just like all the other allocators.
* Changed dynamic MD allocation to size the MD by the number of fragments.
* Dropped a bunch of dross, plus the iovs from lib_msg_t so they become
tiny again.