|
@@ -1876,9 +1876,14 @@ finish:
|
|
|
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);
|
|
|
}
|