Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 320285
b: refs/heads/master
c: 739c905
h: refs/heads/master
i:
  320283: bdb5df2
v: v3
  • Loading branch information
Alex Elder authored and Sage Weil committed Jul 6, 2012
1 parent a63f4d9 commit b6f5556
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d59315ca8c0de00df9b363f94a2641a30961ca1c
refs/heads/master: 739c905baa018c99003564ebc367d93aa44d4861
37 changes: 23 additions & 14 deletions trunk/net/ceph/messenger.c
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,24 @@ static void con_out_kvec_add(struct ceph_connection *con,
con->out_kvec_bytes += size;
}

static void prepare_write_message_data(struct ceph_connection *con)
{
struct ceph_msg *msg = con->out_msg;

BUG_ON(!msg);
BUG_ON(!msg->hdr.data_len);

/* initialize page iterator */
con->out_msg_pos.page = 0;
if (msg->pages)
con->out_msg_pos.page_pos = msg->page_alignment;
else
con->out_msg_pos.page_pos = 0;
con->out_msg_pos.data_pos = 0;
con->out_msg_pos.did_page_crc = false;
con->out_more = 1; /* data + footer will follow */
}

/*
* Prepare footer for currently outgoing message, and finish things
* off. Assumes out_kvec* are already valid.. we just add on to the end.
Expand Down Expand Up @@ -657,26 +675,17 @@ static void prepare_write_message(struct ceph_connection *con)
con->out_msg->footer.middle_crc = cpu_to_le32(crc);
} else
con->out_msg->footer.middle_crc = 0;
con->out_msg->footer.data_crc = 0;
dout("prepare_write_message front_crc %u data_crc %u\n",
dout("%s front_crc %u middle_crc %u\n", __func__,
le32_to_cpu(con->out_msg->footer.front_crc),
le32_to_cpu(con->out_msg->footer.middle_crc));

/* is there a data payload? */
if (le32_to_cpu(m->hdr.data_len) > 0) {
/* initialize page iterator */
con->out_msg_pos.page = 0;
if (m->pages)
con->out_msg_pos.page_pos = m->page_alignment;
else
con->out_msg_pos.page_pos = 0;
con->out_msg_pos.data_pos = 0;
con->out_msg_pos.did_page_crc = false;
con->out_more = 1; /* data + footer will follow */
} else {
con->out_msg->footer.data_crc = 0;
if (m->hdr.data_len)
prepare_write_message_data(con);
else
/* no, queue up footer too and be done */
prepare_write_message_footer(con);
}

set_bit(WRITE_PENDING, &con->flags);
}
Expand Down

0 comments on commit b6f5556

Please sign in to comment.