]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
libceph: kill osd request r_trail
authorAlex Elder <elder@inktank.com>
Fri, 8 Mar 2013 19:35:36 +0000 (13:35 -0600)
committerGreg Farnum <greg@inktank.com>
Wed, 13 Mar 2013 00:45:22 +0000 (17:45 -0700)
commit9a2be41eda3730919b7c9c96d87ffa9a2b894d42
tree77394bf6dbd41f20d0943644316353d57dda5efb
parent3df0267b567ca0d1b18f852c7d60b3c041467668
libceph: kill osd request r_trail

The osd trail is a pagelist, used only for a CALL osd operation
to hold the class and method names, along with any input data for
the call.

It is only currently used by the rbd client, and when it's used it
is the only bit of outbound data in the osd request.  Since we
already support (non-trail) pagelist data in a message, we can
just save this outbound CALL data in the "normal" pagelist rather
than the trail, and get rid of the trail entirely.

The existing pagelist support depends on the pagelist being
dynamically allocated, and ownership of it is passed to the
messenger once it's been attached to a message.  (That is to say,
the messenger releases and frees the pagelist when it's done with
it).  That means we need to dynamically allocate the pagelist also.

Note that we simply assert that the allocation of a pagelist
structure succeeds.  Appending to a pagelist might require a dynamic
allocation, so we're already assuming we won't run into trouble
doing so (we're just ignore any failures--and that should be fixed
at some point).

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

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