Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 373347
b: refs/heads/master
c: 35b6280
h: refs/heads/master
i:
  373345: 5ea8ea8
  373343: e831ee7
v: v3
  • Loading branch information
Alex Elder authored and Sage Weil committed May 2, 2013
1 parent c29bebb commit cd1fa17
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 28 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: afb3d90e205140415477d501ff9e2a33ff0b197f
refs/heads/master: 35b6280899424a0faf5410ce1ee86f9682528e6c
47 changes: 20 additions & 27 deletions trunk/net/ceph/messenger.c
Original file line number Diff line number Diff line change
Expand Up @@ -1085,6 +1085,19 @@ static void in_msg_pos_next(struct ceph_connection *con, size_t len,
#endif /* CONFIG_BLOCK */
}

static u32 ceph_crc32c_page(u32 crc, struct page *page,
unsigned int page_offset,
unsigned int length)
{
char *kaddr;

kaddr = kmap(page);
BUG_ON(kaddr == NULL);
crc = crc32c(crc, kaddr + page_offset, length);
kunmap(page);

return crc;
}
/*
* Write as much message data payload as we can. If we finish, queue
* up the footer.
Expand Down Expand Up @@ -1153,15 +1166,9 @@ static int write_partial_message_data(struct ceph_connection *con)

page_offset = msg_pos->page_pos + bio_offset;
if (do_datacrc && !msg_pos->did_page_crc) {
void *base;
u32 crc = le32_to_cpu(msg->footer.data_crc);
char *kaddr;

kaddr = kmap(page);
BUG_ON(kaddr == NULL);
base = kaddr + page_offset;
crc = crc32c(crc, base, length);
kunmap(page);
crc = ceph_crc32c_page(crc, page, page_offset, length);
msg->footer.data_crc = cpu_to_le32(crc);
msg_pos->did_page_crc = true;
}
Expand Down Expand Up @@ -1843,16 +1850,9 @@ static int read_partial_message_pages(struct ceph_connection *con,
if (ret <= 0)
return ret;

if (do_datacrc) {
void *kaddr;
void *base;

kaddr = kmap(page);
BUG_ON(!kaddr);
base = kaddr + page_offset;
con->in_data_crc = crc32c(con->in_data_crc, base, ret);
kunmap(page);
}
if (do_datacrc)
con->in_data_crc = ceph_crc32c_page(con->in_data_crc, page,
page_offset, ret);

in_msg_pos_next(con, length, ret);

Expand Down Expand Up @@ -1886,16 +1886,9 @@ static int read_partial_message_bio(struct ceph_connection *con,
if (ret <= 0)
return ret;

if (do_datacrc) {
void *kaddr;
void *base;

kaddr = kmap(page);
BUG_ON(!kaddr);
base = kaddr + page_offset;
con->in_data_crc = crc32c(con->in_data_crc, base, ret);
kunmap(page);
}
if (do_datacrc)
con->in_data_crc = ceph_crc32c_page(con->in_data_crc, page,
page_offset, ret);

in_msg_pos_next(con, length, ret);

Expand Down

0 comments on commit cd1fa17

Please sign in to comment.