Reviewed-by: Sage Weil <sage@xxxxxxxxxxx> On Thu, 10 May 2012, Alex Elder wrote: > There are two blocks of code in read_partial_message()--those that > read the header and footer of the message--that can be replaced by a > call to read_partial(). Do that. > > Signed-off-by: Alex Elder <elder@xxxxxxxxxxx> > --- > net/ceph/messenger.c | 30 ++++++++++-------------------- > 1 file changed, 10 insertions(+), 20 deletions(-) > > diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c > index f0993af..673133e 100644 > --- a/net/ceph/messenger.c > +++ b/net/ceph/messenger.c > @@ -1628,7 +1628,7 @@ static int read_partial_message(struct ceph_connection > *con) > { > struct ceph_msg *m = con->in_msg; > int ret; > - int to, left; > + int to; > unsigned front_len, middle_len, data_len; > bool do_datacrc = !con->msgr->nocrc; > int skip; > @@ -1638,15 +1638,10 @@ static int read_partial_message(struct ceph_connection > *con) > dout("read_partial_message con %p msg %p\n", con, m); > > /* header */ > - while (con->in_base_pos < sizeof(con->in_hdr)) { > - left = sizeof(con->in_hdr) - con->in_base_pos; > - ret = ceph_tcp_recvmsg(con->sock, > - (char *)&con->in_hdr + > con->in_base_pos, > - left); > - if (ret <= 0) > - return ret; > - con->in_base_pos += ret; > - } > + to = 0; > + ret = read_partial(con, &to, sizeof (con->in_hdr), &con->in_hdr); > + if (ret <= 0) > + return ret; > > crc = crc32c(0, &con->in_hdr, offsetof(struct ceph_msg_header, crc)); > if (cpu_to_le32(crc) != con->in_hdr.crc) { > @@ -1759,16 +1754,11 @@ static int read_partial_message(struct ceph_connection > *con) > } > > /* footer */ > - to = sizeof(m->hdr) + sizeof(m->footer); > - while (con->in_base_pos < to) { > - left = to - con->in_base_pos; > - ret = ceph_tcp_recvmsg(con->sock, (char *)&m->footer + > - (con->in_base_pos - sizeof(m->hdr)), > - left); > - if (ret <= 0) > - return ret; > - con->in_base_pos += ret; > - } > + to = sizeof (m->hdr); > + ret = read_partial(con, &to, sizeof (m->footer), &m->footer); > + if (ret <= 0) > + return ret; > + > dout("read_partial_message got msg %p %d (%u) + %d (%u) + %d (%u)\n", > m, front_len, m->footer.front_crc, middle_len, > m->footer.middle_crc, data_len, m->footer.data_crc); > -- > 1.7.9.5 > > -- > 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 > > -- 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