lkml.org 
[lkml]   [2012]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 064/171] ceph: messenger: change read_partial() to take "end" arg
    Date
    3.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Alex Elder <elder@inktank.com>

    (cherry picked from commit fd51653f78cf40a0516e521b6de22f329c5bad8d)

    Make the second argument to read_partial() be the ending input byte
    position rather than the beginning offset it now represents. This
    amounts to moving the addition "to + size" into the caller.

    Signed-off-by: Alex Elder <elder@inktank.com>
    Reviewed-by: Sage Weil <sage@inktank.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/ceph/messenger.c | 60 ++++++++++++++++++++++++++++++++-------------------
    1 file changed, 38 insertions(+), 22 deletions(-)

    --- a/net/ceph/messenger.c
    +++ b/net/ceph/messenger.c
    @@ -992,10 +992,8 @@ static int prepare_read_message(struct c


    static int read_partial(struct ceph_connection *con,
    - int to, int size, void *object)
    + int end, int size, void *object)
    {
    - int end = to + size;
    -
    while (con->in_base_pos < end) {
    int left = end - con->in_base_pos;
    int have = size - left;
    @@ -1013,40 +1011,52 @@ static int read_partial(struct ceph_conn
    */
    static int read_partial_banner(struct ceph_connection *con)
    {
    - int ret, to = 0;
    + int size;
    + int end;
    + int ret;

    dout("read_partial_banner %p at %d\n", con, con->in_base_pos);

    /* peer's banner */
    - ret = read_partial(con, to, strlen(CEPH_BANNER), con->in_banner);
    + size = strlen(CEPH_BANNER);
    + end = size;
    + ret = read_partial(con, end, size, con->in_banner);
    if (ret <= 0)
    goto out;
    - to += strlen(CEPH_BANNER);
    - ret = read_partial(con, to, sizeof(con->actual_peer_addr),
    - &con->actual_peer_addr);
    +
    + size = sizeof (con->actual_peer_addr);
    + end += size;
    + ret = read_partial(con, end, size, &con->actual_peer_addr);
    if (ret <= 0)
    goto out;
    - to += sizeof(con->actual_peer_addr);
    - ret = read_partial(con, to, sizeof(con->peer_addr_for_me),
    - &con->peer_addr_for_me);
    +
    + size = sizeof (con->peer_addr_for_me);
    + end += size;
    + ret = read_partial(con, end, size, &con->peer_addr_for_me);
    if (ret <= 0)
    goto out;
    +
    out:
    return ret;
    }

    static int read_partial_connect(struct ceph_connection *con)
    {
    - int ret, to = 0;
    + int size;
    + int end;
    + int ret;

    dout("read_partial_connect %p at %d\n", con, con->in_base_pos);

    - ret = read_partial(con, to, sizeof(con->in_reply), &con->in_reply);
    + size = sizeof (con->in_reply);
    + end = size;
    + ret = read_partial(con, end, size, &con->in_reply);
    if (ret <= 0)
    goto out;
    - to += sizeof(con->in_reply);
    - ret = read_partial(con, to, le32_to_cpu(con->in_reply.authorizer_len),
    - con->auth_reply_buf);
    +
    + size = le32_to_cpu(con->in_reply.authorizer_len);
    + end += size;
    + ret = read_partial(con, end, size, con->auth_reply_buf);
    if (ret <= 0)
    goto out;

    @@ -1495,8 +1505,10 @@ static int process_connect(struct ceph_c
    */
    static int read_partial_ack(struct ceph_connection *con)
    {
    - return read_partial(con, 0, sizeof(con->in_temp_ack),
    - &con->in_temp_ack);
    + int size = sizeof (con->in_temp_ack);
    + int end = size;
    +
    + return read_partial(con, end, size, &con->in_temp_ack);
    }


    @@ -1629,8 +1641,9 @@ static int read_partial_message_bio(stru
    static int read_partial_message(struct ceph_connection *con)
    {
    struct ceph_msg *m = con->in_msg;
    + int size;
    + int end;
    int ret;
    - int to;
    unsigned front_len, middle_len, data_len;
    bool do_datacrc = !con->msgr->nocrc;
    int skip;
    @@ -1640,7 +1653,9 @@ static int read_partial_message(struct c
    dout("read_partial_message con %p msg %p\n", con, m);

    /* header */
    - ret = read_partial(con, 0, sizeof (con->in_hdr), &con->in_hdr);
    + size = sizeof (con->in_hdr);
    + end = size;
    + ret = read_partial(con, end, size, &con->in_hdr);
    if (ret <= 0)
    return ret;

    @@ -1755,8 +1770,9 @@ static int read_partial_message(struct c
    }

    /* footer */
    - to = sizeof (m->hdr);
    - ret = read_partial(con, to, sizeof (m->footer), &m->footer);
    + size = sizeof (m->footer);
    + end += size;
    + ret = read_partial(con, end, size, &m->footer);
    if (ret <= 0)
    return ret;




    \
     
     \ /
      Last update: 2012-11-23 21:21    [W:2.436 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site