Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754798AbbKWNSO (ORCPT ); Mon, 23 Nov 2015 08:18:14 -0500 Received: from mx2.suse.de ([195.135.220.15]:59823 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754641AbbKWNMk (ORCPT ); Mon, 23 Nov 2015 08:12:40 -0500 X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" From: Jiri Slaby To: stable@vger.kernel.org Cc: linux-kernel@vger.kernel.org, "Yan, Zheng" , Jiri Slaby Subject: [PATCH 3.12 54/72] ceph: fix kick_requests() Date: Mon, 23 Nov 2015 14:12:15 +0100 Message-Id: <79f4fd24076c15fa1d59cc5dfa4646d550c3432b.1448283890.git.jslaby@suse.cz> X-Mailer: git-send-email 2.6.3 In-Reply-To: <09f041d02b9d5407d544d6fd5a9026072c44956f.1448283890.git.jslaby@suse.cz> References: <09f041d02b9d5407d544d6fd5a9026072c44956f.1448283890.git.jslaby@suse.cz> In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1406 Lines: 44 From: "Yan, Zheng" 3.12-stable review patch. If anyone has any objections, please let me know. =============== commit 282c105225ec3229f344c5fced795b9e1e634440 upstream. __do_request() may unregister the request. So we should update iterator 'p' before calling __do_request() Signed-off-by: "Yan, Zheng" Signed-off-by: Jiri Slaby --- fs/ceph/mds_client.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 16c7e4ab94f0..5ef4c6ca5cb5 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -1975,11 +1975,12 @@ static void __wake_requests(struct ceph_mds_client *mdsc, static void kick_requests(struct ceph_mds_client *mdsc, int mds) { struct ceph_mds_request *req; - struct rb_node *p; + struct rb_node *p = rb_first(&mdsc->request_tree); dout("kick_requests mds%d\n", mds); - for (p = rb_first(&mdsc->request_tree); p; p = rb_next(p)) { + while (p) { req = rb_entry(p, struct ceph_mds_request, r_node); + p = rb_next(p); if (req->r_got_unsafe) continue; if (req->r_session && -- 2.6.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/