mutex_lock(&ctrl->namespaces_lock);
        list_for_each_entry_safe(ns, next, &ctrl->namespaces, list) {
-               if (ns->head->ns_id > nsid)
-                       list_splice_init_rcu(&ns->list, &rm_list,
-                                            synchronize_rcu);
+               if (ns->head->ns_id > nsid) {
+                       list_del_rcu(&ns->list);
+                       synchronize_srcu(&ctrl->srcu);
+                       list_add_tail_rcu(&ns->list, &rm_list);
+               }
        }
        mutex_unlock(&ctrl->namespaces_lock);
-       synchronize_srcu(&ctrl->srcu);
 
        list_for_each_entry_safe(ns, next, &rm_list, list)
                nvme_ns_remove(ns);