Whamcloud - gitweb
LU-4423 ptlrpc: use list_move where appropriate. 07/35507/5
authorNeilBrown <neilb@suse.com>
Sun, 14 Jul 2019 23:32:56 +0000 (19:32 -0400)
committerOleg Drokin <green@whamcloud.com>
Sat, 27 Jul 2019 00:22:24 +0000 (00:22 +0000)
There are several places in lustre where "list_del" (or occasionally
"list_del_init") is followed by "list_add" or "list_add_tail" which
moves the object to a different list.
These can be combined into "list_move" or "list_move_tail".

Change-Id: I9ca0df11cd655b9a63a4889dd4388b3b8c8bc992
Signed-off-by: NeilBrown <neilb@suse.com>
Reviewed-on: https://review.whamcloud.com/35507
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/ldlm/ldlm_lib.c
lustre/ldlm/ldlm_request.c
lustre/ptlrpc/client.c
lustre/ptlrpc/import.c
lustre/ptlrpc/service.c

index 0a29250..5e4dd03 100644 (file)
@@ -90,9 +90,8 @@ static int import_set_conn(struct obd_import *imp, struct obd_uuid *uuid,
        list_for_each_entry(item, &imp->imp_conn_list, oic_item) {
                if (obd_uuid_equals(uuid, &item->oic_uuid)) {
                        if (priority) {
-                               list_del(&item->oic_item);
-                               list_add(&item->oic_item,
-                                        &imp->imp_conn_list);
+                               list_move(&item->oic_item,
+                                         &imp->imp_conn_list);
                                item->oic_last_attempt = 0;
                        }
                        CDEBUG(D_HA, "imp %p@%s: found existing conn %s%s\n",
index 4d56e97..df59c6b 100644 (file)
@@ -1688,8 +1688,7 @@ int ldlm_cli_cancel_list_local(struct list_head *cancels, int count,
                 */
                if (!(cancel_flags & LCF_BL_AST) && (rc == LDLM_FL_BL_AST)) {
                        LDLM_DEBUG(lock, "Cancel lock separately");
-                       list_del_init(&lock->l_bl_ast);
-                       list_add(&lock->l_bl_ast, &head);
+                       list_move(&lock->l_bl_ast, &head);
                        bl_ast++;
                        continue;
                }
index 76cfb29..6812cdb 100644 (file)
@@ -1952,9 +1952,8 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set)
                                         * put on delay list - only if we wait
                                         * recovery finished - before send
                                         */
-                                       list_del_init(&req->rq_list);
-                                       list_add_tail(&req->rq_list,
-                                                     &imp->imp_delayed_list);
+                                       list_move_tail(&req->rq_list,
+                                                      &imp->imp_delayed_list);
                                        spin_unlock(&imp->imp_lock);
                                        continue;
                                }
@@ -1978,9 +1977,8 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set)
                                        GOTO(interpret, req->rq_status);
                                }
 
-                               list_del_init(&req->rq_list);
-                               list_add_tail(&req->rq_list,
-                                             &imp->imp_sending_list);
+                               list_move_tail(&req->rq_list,
+                                              &imp->imp_sending_list);
 
                                spin_unlock(&imp->imp_lock);
 
index a6a7d3f..e765481 100644 (file)
@@ -823,9 +823,8 @@ static int ptlrpc_connect_set_flags(struct obd_import *imp,
        struct client_obd *cli = &imp->imp_obd->u.cli;
 
        spin_lock(&imp->imp_lock);
-       list_del(&imp->imp_conn_current->oic_item);
-       list_add(&imp->imp_conn_current->oic_item,
-                &imp->imp_conn_list);
+       list_move(&imp->imp_conn_current->oic_item,
+                 &imp->imp_conn_list);
        imp->imp_last_success_conn =
                imp->imp_conn_current->oic_last_attempt;
 
index e8e887c..faa8ad0 100644 (file)
@@ -449,11 +449,10 @@ static int ptlrpc_server_post_idle_rqbds(struct ptlrpc_service_part *svcpt)
                rqbd = list_entry(svcpt->scp_rqbd_idle.next,
                                      struct ptlrpc_request_buffer_desc,
                                      rqbd_list);
-               list_del(&rqbd->rqbd_list);
 
                /* assume we will post successfully */
                svcpt->scp_nrqbds_posted++;
-               list_add(&rqbd->rqbd_list, &svcpt->scp_rqbd_posted);
+               list_move(&rqbd->rqbd_list, &svcpt->scp_rqbd_posted);
 
                spin_unlock(&svcpt->scp_lock);
 
@@ -467,8 +466,7 @@ static int ptlrpc_server_post_idle_rqbds(struct ptlrpc_service_part *svcpt)
        spin_lock(&svcpt->scp_lock);
 
        svcpt->scp_nrqbds_posted--;
-       list_del(&rqbd->rqbd_list);
-       list_add_tail(&rqbd->rqbd_list, &svcpt->scp_rqbd_idle);
+       list_move_tail(&rqbd->rqbd_list, &svcpt->scp_rqbd_idle);
 
        /*
         * Don't complain if no request buffers are posted right now; LNET
@@ -944,9 +942,7 @@ void ptlrpc_server_drop_request(struct ptlrpc_request *req)
        refcount = --(rqbd->rqbd_refcount);
        if (refcount == 0) {
                /* request buffer is now idle: add to history */
-               list_del(&rqbd->rqbd_list);
-
-               list_add_tail(&rqbd->rqbd_list, &svcpt->scp_hist_rqbds);
+               list_move_tail(&rqbd->rqbd_list, &svcpt->scp_hist_rqbds);
                svcpt->scp_hist_nrqbds++;
 
                /*
@@ -3023,8 +3019,7 @@ static void ptlrpc_svcpt_stop_threads(struct ptlrpc_service_part *svcpt)
                thread = list_entry(svcpt->scp_threads.next,
                                        struct ptlrpc_thread, t_link);
                if (thread_is_stopped(thread)) {
-                       list_del(&thread->t_link);
-                       list_add(&thread->t_link, &zombie);
+                       list_move(&thread->t_link, &zombie);
                        continue;
                }
                spin_unlock(&svcpt->scp_lock);