aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ceph/mds_client.c')
-rw-r--r--fs/ceph/mds_client.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 239bc9cba28c..f54f77037d22 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -644,6 +644,9 @@ static void __unregister_request(struct ceph_mds_client *mdsc,
644{ 644{
645 dout("__unregister_request %p tid %lld\n", req, req->r_tid); 645 dout("__unregister_request %p tid %lld\n", req, req->r_tid);
646 646
647 /* Never leave an unregistered request on an unsafe list! */
648 list_del_init(&req->r_unsafe_item);
649
647 if (req->r_tid == mdsc->oldest_tid) { 650 if (req->r_tid == mdsc->oldest_tid) {
648 struct rb_node *p = rb_next(&req->r_node); 651 struct rb_node *p = rb_next(&req->r_node);
649 mdsc->oldest_tid = 0; 652 mdsc->oldest_tid = 0;
@@ -1051,7 +1054,6 @@ static void cleanup_session_requests(struct ceph_mds_client *mdsc,
1051 while (!list_empty(&session->s_unsafe)) { 1054 while (!list_empty(&session->s_unsafe)) {
1052 req = list_first_entry(&session->s_unsafe, 1055 req = list_first_entry(&session->s_unsafe,
1053 struct ceph_mds_request, r_unsafe_item); 1056 struct ceph_mds_request, r_unsafe_item);
1054 list_del_init(&req->r_unsafe_item);
1055 pr_warn_ratelimited(" dropping unsafe request %llu\n", 1057 pr_warn_ratelimited(" dropping unsafe request %llu\n",
1056 req->r_tid); 1058 req->r_tid);
1057 __unregister_request(mdsc, req); 1059 __unregister_request(mdsc, req);
@@ -2477,7 +2479,6 @@ static void handle_reply(struct ceph_mds_session *session, struct ceph_msg *msg)
2477 * useful we could do with a revised return value. 2479 * useful we could do with a revised return value.
2478 */ 2480 */
2479 dout("got safe reply %llu, mds%d\n", tid, mds); 2481 dout("got safe reply %llu, mds%d\n", tid, mds);
2480 list_del_init(&req->r_unsafe_item);
2481 2482
2482 /* last unsafe request during umount? */ 2483 /* last unsafe request during umount? */
2483 if (mdsc->stopping && !__get_oldest_req(mdsc)) 2484 if (mdsc->stopping && !__get_oldest_req(mdsc))