ceph: explicitly specify page alignment in network messages
authorSage Weil <sage@newdream.net>
Tue, 9 Nov 2010 20:40:00 +0000 (12:40 -0800)
committerSage Weil <sage@newdream.net>
Tue, 9 Nov 2010 20:43:17 +0000 (12:43 -0800)
commitc5c6b19d4b8f5431fca05f28ae9e141045022149
tree0961d9aeee49f481134089ac5b93b7118cf3a34b
parentb7495fc2ff941db6a118a93ab8d61149e3f4cef8
ceph: explicitly specify page alignment in network messages

The alignment used for reading data into or out of pages used to be taken
from the data_off field in the message header.  This only worked as long
as the page alignment matched the object offset, breaking direct io to
non-page aligned offsets.

Instead, explicitly specify the page alignment next to the page vector
in the ceph_msg struct, and use that instead of the message header (which
probably shouldn't be trusted).  The alloc_msg callback is responsible for
filling in this field properly when it sets up the page vector.

Signed-off-by: Sage Weil <sage@newdream.net>
include/linux/ceph/messenger.h
net/ceph/messenger.c
net/ceph/osd_client.c