- if (bulk->b_buf != ev->mem_desc.start + ev->offset)
- CERROR("bulkbuf != mem_desc -- why?\n");
- if (bulk->b_cb != NULL)
- bulk->b_cb(bulk);
- if (atomic_dec_and_test(&desc->b_pages_remaining)) {
- desc->b_flags |= PTL_BULK_FL_RCVD;
- wake_up(&desc->b_waitq);
- if (desc->b_cb != NULL)
- desc->b_cb(desc, desc->b_cb_data);
+ /* put with zero offset */
+ LASSERT (ev->offset == 0);
+ /* used iovs */
+ LASSERT ((ev->mem_desc.options & PTL_MD_IOV) != 0);
+ /* 1 fragment for each page always */
+ LASSERT (ev->mem_desc.niov == desc->b_page_count);
+
+ list_for_each_safe (tmp, next, &desc->b_page_list) {
+ bulk = list_entry(tmp, struct ptlrpc_bulk_page, b_link);
+
+ total += bulk->b_buflen;
+
+ if (bulk->b_cb != NULL)
+ bulk->b_cb(bulk);