if ((err = ceph_decode_32(&p, end, &maplen)) != 0)
goto bad;
- dout(2, "ceph_mdsc_handle_map epoch %u len %d\n", epoch, (int)maplen);
+ dout(2, "handle_map epoch %u len %d\n", epoch, (int)maplen);
/* do we need it? */
spin_lock(&mdsc->lock);
void *p;
int ret;
int want, left;
+
+ dout(20, "read_message_partial con %p msg %p\n", con, m);
/* header */
while (con->in_base_pos < sizeof(struct ceph_msg_header)) {
goto done;
if (m->nr_pages == 0) {
con->in_msg_pos.page = 0;
- con->in_msg_pos.page_pos = m->hdr.data_off;
+ con->in_msg_pos.page_pos = m->hdr.data_off & ~PAGE_MASK;
con->in_msg_pos.data_pos = 0;
/* find (or alloc) pages for data payload */
- want = calc_pages_for(m->hdr.data_len, m->hdr.data_off);
+ want = calc_pages_for(m->hdr.data_len, m->hdr.data_off & ~PAGE_MASK);
ret = 0;
BUG_ON(!con->msgr->prepare_pages);
ret = con->msgr->prepare_pages(con->msgr->parent, m, want);
while (con->in_msg_pos.data_pos < m->hdr.data_len) {
left = min((int)(m->hdr.data_len - con->in_msg_pos.data_pos),
(int)(PAGE_SIZE - con->in_msg_pos.page_pos));
+ /*dout(10, "data_pos = %d, data_len = %d, page_pos=%d left = %d\n",
+ con->in_msg_pos.data_pos, m->hdr.data_len, con->in_msg_pos.page_pos, left);*/
p = kmap(m->pages[con->in_msg_pos.page]);
ret = ceph_tcp_recvmsg(con->sock, p + con->in_msg_pos.page_pos, left);
if (ret <= 0) return ret;
}
done:
+ dout(20, "read_message_partial got msg %p\n", m);
return 1; /* done! */
}
__u64 tid;
int ret = -1;
- dout(10, "prepare_pages on %p\n", m);
+ dout(10, "prepare_pages on msg %p want %d\n", m, want);
if (unlikely(le32_to_cpu(m->hdr.type) != CEPH_MSG_OSD_OPREPLY))
return -1; /* hmm! */
spin_unlock(&osdc->lock);
/* wait */
- dout(10, "readpage waiting for reply on %p\n", req);
+ dout(10, "readpage tid %llu waiting for reply on %p\n", req->r_tid, req);
wait_for_completion(&req->r_completion);
- dout(10, "readpage got reply on %p\n", req);
+ dout(10, "readpage tid %llu got reply on %p\n", req->r_tid, req);
spin_lock(&osdc->lock);
unregister_request(osdc, req);