I'm working on getting data structures for every rbd image request initialized in one place, and similarly getting all osd object requests for rbd images initialized at once at well. This series addresses an issue I bumped into while trying to do this, and then goes a little further to implement the centralized op initialization. For read or write osd operations, their offset and length fields as well as the operation's payload length field are assigned fairly late, as the osd request is getting built up in rbd_do_request(). This is sort of strange; all of the other request types get all their fields assigned right after their osd op structure gets created. This series moves those late assignments for read and write ops earlier, ultimately into the existing "create op" function. It then creates a new function that fully initializes the op with provided arguments for all op types. We end up with a single function that fully initializes osd ops of any type, as desired. -Alex [PATCH 1/6] rbd: don't assign extent info in rbd_do_request() [PATCH 2/6] rbd: don't assign extent info in rbd_req_sync_op() [PATCH 3/6] rbd: initialize off and len in rbd_create_rw_op() [PATCH 4/6] rbd: define generalized osd request op routines [PATCH 5/6] rbd: move call osd op setup into rbd_osd_req_op_create() [PATCH 6/6] rbd: move remaining osd op setup into rbd_osd_req_op_create() -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html