Subtask #4657
closedFeature #3761: kernel messenger: need to support multiple ops per request
libceph: have each op describe its own data
0%
Description
Each osd request has an array of osd operations (ops). Each
op can have a data item associated with it.
Currently, an op has either no data, one data item for outgoing
data (like a write), one data item for incoming data (like a
read), or one outgoing and one incoming data item (object class
method call).
And currently, no osd request ever needs more than one op that
has data. So it's sufficient to maintain just two data items
for all requests--one for outgoing data, and one for incoming.
We need more than that to suppot layering, though. And to
match what we need, each op should maintain its own data item
information rather than sharing them among all ops in a request.
So we need to arrange things so each op defines the one or
more data items it needs. Then the information about them
needs to be transferred to the request or response message
so it can be processed by the messenger.
This work has been underway but it is (or was) worthy of
its own separate description, so I've done that after the
fact, here...