]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
libceph: kill last of ceph_msg_pos
authorAlex Elder <elder@inktank.com>
Tue, 12 Mar 2013 04:34:23 +0000 (23:34 -0500)
committerAlex Elder <elder@inktank.com>
Fri, 29 Mar 2013 20:51:34 +0000 (15:51 -0500)
commitad92e0fa0a5ff7f8c48fad25acfb95cad853ec99
tree90f3d2bf186b2dfb674318ce5dde91e73013b1a3
parent3d2429d859a595593d39219ff9470e81f2551d4b
libceph: kill last of ceph_msg_pos

The only remaining field in the ceph_msg_pos structure is
did_page_crc.  In the new cursor model of things that flag (or
something like it) belongs in the cursor.

Define a new field "need_crc" in the cursor (which applies to all
types of data) and initialize it to true whenever a cursor is
initialized.

In write_partial_message_data(), the data CRC still will be computed
as before, but it will check the cursor->need_crc field to determine
whether it's needed.  Any time the cursor is advanced to a new piece
of a data item, need_crc will be set, and this will cause the crc
for that entire piece to be accumulated into the data crc.

In write_partial_message_data() the intermediate crc value is now
held in a local variable so it doesn't have to be byte-swapped so
many times.  In read_partial_msg_data() we do something similar
(but mainly for consistency there).

With that, the ceph_msg_pos structure can go away,  and it no longer
needs to be passed as an argument to prepare_message_data().

This cleanup is related to:
    http://tracker.ceph.com/issues/4428

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
include/linux/ceph/messenger.h
net/ceph/messenger.c