lkml.org 
[lkml]   [2015]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.4 29/91] libceph: gracefully handle large reply messages from the mon
    Date
    From: Sage Weil <sage@redhat.com>

    3.4.105-rc1 review patch. If anyone has any objections, please let me know.

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


    commit 73c3d4812b4c755efeca0140f606f83772a39ce4 upstream.

    We preallocate a few of the message types we get back from the mon. If we
    get a larger message than we are expecting, fall back to trying to allocate
    a new one instead of blindly using the one we have.

    Signed-off-by: Sage Weil <sage@redhat.com>
    Reviewed-by: Ilya Dryomov <ilya.dryomov@inktank.com>
    [lizf: Backported to 3.4: s/front_alloc_len/front_max/g]
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    ---
    net/ceph/mon_client.c | 8 ++++++++
    1 file changed, 8 insertions(+)

    diff --git a/net/ceph/mon_client.c b/net/ceph/mon_client.c
    index 6765da3..bc293c0 100644
    --- a/net/ceph/mon_client.c
    +++ b/net/ceph/mon_client.c
    @@ -1042,7 +1042,15 @@ static struct ceph_msg *mon_alloc_msg(struct ceph_connection *con,
    if (!m) {
    pr_info("alloc_msg unknown type %d\n", type);
    *skip = 1;
    + } else if (front_len > m->front_max) {
    + pr_warning("mon_alloc_msg front %d > prealloc %d (%u#%llu)\n",
    + front_len, m->front_max,
    + (unsigned int)con->peer_name.type,
    + le64_to_cpu(con->peer_name.num));
    + ceph_msg_put(m);
    + m = ceph_msg_new(type, front_len, GFP_NOFS, false);
    }
    +
    return m;
    }

    --
    1.9.1


    \
     
     \ /
      Last update: 2015-01-28 07:01    [W:2.471 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site