From 69646e832c06594ed289434ace1c37d26775bd7f Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Mon, 19 Nov 2012 10:49:06 +0800 Subject: [PATCH] --- yaml --- r: 347605 b: refs/heads/master c: ed75ec2cd19b47efcd292b6e23f58e56f4c5bc34 h: refs/heads/master i: 347603: edf7461e6dc7a47681d5aef12a64ef9d312faea0 v: v3 --- [refs] | 2 +- trunk/fs/ceph/mds_client.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index d1b5a0dcfd14..81833c8fa1a4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5e62ad30157d0da04cf40c6d1a2f4bc840948b9c +refs/heads/master: ed75ec2cd19b47efcd292b6e23f58e56f4c5bc34 diff --git a/trunk/fs/ceph/mds_client.c b/trunk/fs/ceph/mds_client.c index 62d2342eb267..9165eb8309eb 100644 --- a/trunk/fs/ceph/mds_client.c +++ b/trunk/fs/ceph/mds_client.c @@ -1876,9 +1876,14 @@ static int __do_request(struct ceph_mds_client *mdsc, static void __wake_requests(struct ceph_mds_client *mdsc, struct list_head *head) { - struct ceph_mds_request *req, *nreq; + struct ceph_mds_request *req; + LIST_HEAD(tmp_list); + + list_splice_init(head, &tmp_list); - list_for_each_entry_safe(req, nreq, head, r_wait) { + while (!list_empty(&tmp_list)) { + req = list_entry(tmp_list.next, + struct ceph_mds_request, r_wait); list_del_init(&req->r_wait); __do_request(mdsc, req); }