Skip to content

Commit

Permalink
libceph: do crc calculations outside loop
Browse files Browse the repository at this point in the history
Move blocks of code out of loops in read_partial_message_section()
and read_partial_message().  They were only was getting called at
the end of the last iteration of the loop anyway.

Signed-off-by: Alex Elder <elder@dreamhost.com>
Signed-off-by: Sage Weil <sage@newdream.net>
  • Loading branch information
Alex Elder committed Mar 22, 2012
1 parent a9a0c51 commit fe3ad59
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions net/ceph/messenger.c
Original file line number Diff line number Diff line change
Expand Up @@ -1544,10 +1544,9 @@ static int read_partial_message_section(struct ceph_connection *con,
if (ret <= 0)
return ret;
section->iov_len += ret;
if (section->iov_len == sec_len)
*crc = crc32c(0, section->iov_base,
section->iov_len);
}
if (section->iov_len == sec_len)
*crc = crc32c(0, section->iov_base, section->iov_len);

return 1;
}
Expand Down Expand Up @@ -1638,6 +1637,7 @@ static int read_partial_message(struct ceph_connection *con)
bool do_datacrc = con->msgr->nocrc;
int skip;
u64 seq;
u32 crc;

dout("read_partial_message con %p msg %p\n", con, m);

Expand All @@ -1650,18 +1650,16 @@ static int read_partial_message(struct ceph_connection *con)
if (ret <= 0)
return ret;
con->in_base_pos += ret;
if (con->in_base_pos == sizeof(con->in_hdr)) {
u32 crc = crc32c(0, &con->in_hdr,
offsetof(struct ceph_msg_header, crc));

if (cpu_to_le32(crc) != con->in_hdr.crc) {
pr_err("read_partial_message bad hdr "
" crc %u != expected %u\n",
crc, con->in_hdr.crc);
return -EBADMSG;
}
}
}

crc = crc32c(0, &con->in_hdr, offsetof(struct ceph_msg_header, crc));
if (cpu_to_le32(crc) != con->in_hdr.crc) {
pr_err("read_partial_message bad hdr "
" crc %u != expected %u\n",
crc, con->in_hdr.crc);
return -EBADMSG;
}

front_len = le32_to_cpu(con->in_hdr.front_len);
if (front_len > CEPH_MSG_MAX_FRONT_LEN)
return -EIO;
Expand Down

0 comments on commit fe3ad59

Please sign in to comment.