diff options
author | Yan, Zheng <ukernel@gmail.com> | 2014-09-11 02:28:56 -0400 |
---|---|---|
committer | Ilya Dryomov <idryomov@redhat.com> | 2014-10-14 13:03:24 -0400 |
commit | 03974e8177b36d672eb59658f976f03cb77c1129 (patch) | |
tree | 4dc3cf220c09ff41b986dbe904131c32a77ea0cc /fs/ceph | |
parent | 656e4382948d4b2c81bdaf707f1400f53eff2625 (diff) |
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>
Diffstat (limited to 'fs/ceph')
-rw-r--r-- | fs/ceph/mds_client.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 267ba4496dc8..a17fc49c9948 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c | |||
@@ -2078,6 +2078,7 @@ static void kick_requests(struct ceph_mds_client *mdsc, int mds) | |||
2078 | if (req->r_session && | 2078 | if (req->r_session && |
2079 | req->r_session->s_mds == mds) { | 2079 | req->r_session->s_mds == mds) { |
2080 | dout(" kicking tid %llu\n", req->r_tid); | 2080 | dout(" kicking tid %llu\n", req->r_tid); |
2081 | list_del_init(&req->r_wait); | ||
2081 | __do_request(mdsc, req); | 2082 | __do_request(mdsc, req); |
2082 | } | 2083 | } |
2083 | } | 2084 | } |