Просмотр исходного кода

ceph: make sure request isn't in any waiting list when kicking request.

we may corrupt waiting list if a request in the waiting list is kicked.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Yan, Zheng 11 лет назад
Родитель
Сommit
03974e8177
1 измененных файлов с 1 добавлено и 0 удалено
  1. 1 0
      fs/ceph/mds_client.c

+ 1 - 0
fs/ceph/mds_client.c

@@ -2078,6 +2078,7 @@ static void kick_requests(struct ceph_mds_client *mdsc, int mds)
 		if (req->r_session &&
 		    req->r_session->s_mds == mds) {
 			dout(" kicking tid %llu\n", req->r_tid);
+			list_del_init(&req->r_wait);
 			__do_request(mdsc, req);
 		}
 	}