libceph: make method call data be a separate data item
authorAlex Elder <elder@inktank.com>
Fri, 5 Apr 2013 19:46:02 +0000 (14:46 -0500)
committerSage Weil <sage@inktank.com>
Thu, 2 May 2013 04:18:35 +0000 (21:18 -0700)
commit04017e29bbcf0673d8a6af616c56e395d05f5971
tree09bd1c613cf85e4410755e2931cf3c21fa5da488
parent90af36022aecdeeb1b9c0755461187de717c86dd
libceph: make method call data be a separate data item

Right now the data for a method call is specified via a pointer and
length, and it's copied--along with the class and method name--into
a pagelist data item to be sent to the osd.  Instead, encode the
data in a data item separate from the class and method names.

This will allow large amounts of data to be supplied to methods
without copying.  Only rbd uses the class functionality right now,
and when it really needs this it will probably need to use a page
array rather than a page list.  But this simple implementation
demonstrates the functionality on the osd client, and that's enough
for now.

This resolves:
    http://tracker.ceph.com/issues/4104

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