From: Liu Yuan <liuy...@cmss.chinamobile.com>

This reverts commit 58f0d6dcdfa370df4456ed08cd32983731fc0c4e.

Signed-off-by: Liu Yuan <liuy...@cmss.chinamobile.com>
---
 sheep/ops.c        |   1 -
 sheep/sheep_priv.h |   1 -
 sheep/vdi.c        | 110 -----------------------------------------------------
 3 files changed, 112 deletions(-)

diff --git a/sheep/ops.c b/sheep/ops.c
index 0e5ac64..5dd736c 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -198,7 +198,6 @@ static int post_cluster_del_vdi(const struct sd_req *req, 
struct sd_rsp *rsp,
        if (ret == SD_RES_SUCCESS) {
                atomic_set_bit(vid, sys->vdi_deleted);
                vdi_mark_deleted(vid);
-               run_vid_gc(vid);
        }
 
        if (!sys->enable_object_cache)
diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
index 26afa89..4a4274b 100644
--- a/sheep/sheep_priv.h
+++ b/sheep/sheep_priv.h
@@ -363,7 +363,6 @@ void invalidate_other_nodes(uint32_t vid);
 int inode_coherence_update(uint32_t vid, bool validate,
                           const struct node_id *sender);
 void remove_node_from_participants(const struct node_id *left);
-void run_vid_gc(uint32_t vid);
 
 extern int ec_max_data_strip;
 
diff --git a/sheep/vdi.c b/sheep/vdi.c
index 8114fb5..9bf6b23 100644
--- a/sheep/vdi.c
+++ b/sheep/vdi.c
@@ -89,7 +89,6 @@ static void update_vdi_family(uint32_t parent_vid,
 
                INIT_LIST_NODE(&new->roots_list);
                INIT_LIST_HEAD(&new->child_list_head);
-               INIT_LIST_NODE(&new->child_list_node);
 
                list_add_tail(&new->roots_list, &vdi_family_roots);
 
@@ -103,7 +102,6 @@ static void update_vdi_family(uint32_t parent_vid,
        new->entry = entry;
        entry->family_member = new;
 
-       INIT_LIST_NODE(&new->roots_list);
        INIT_LIST_HEAD(&new->child_list_head);
        INIT_LIST_NODE(&new->child_list_node);
 
@@ -151,30 +149,6 @@ ret:
        sd_mutex_unlock(&vdi_family_mutex);
 }
 
-static main_fn struct vdi_family_member *lookup_root(struct vdi_family_member
-                                                    *member)
-{
-       if (!member->parent)
-               return member;
-
-       return lookup_root(member->parent);
-}
-
-static main_fn bool is_all_members_deleted(struct vdi_family_member *member)
-{
-       struct vdi_family_member *child;
-
-       if (!member->entry->deleted)
-               return false;
-
-       list_for_each_entry(child, &member->child_list_head, child_list_node) {
-               if (!is_all_members_deleted(child))
-                       return false;
-       }
-
-       return true;
-}
-
 /*
  * ec_max_data_strip represent max number of data strips in the cluster. When
  * nr_zones < it, we don't purge the stale objects because for erasure coding,
@@ -1905,39 +1879,12 @@ out:
        return ret;
 }
 
-static void clean_family(struct vdi_family_member *member)
-{
-       struct vdi_family_member *child;
-
-       list_for_each_entry(child, &member->child_list_head, child_list_node) {
-               clean_family(child);
-       }
-
-       if (list_linked(&member->child_list_node))
-               list_del(&member->child_list_node);
-
-       if (!list_linked(&member->roots_list))
-               free(member);
-}
-
 void clean_vdi_state(void)
 {
-       struct vdi_family_member *member;
-
        sd_write_lock(&vdi_state_lock);
        rb_destroy(&vdi_state_root, struct vdi_state_entry, node);
        INIT_RB_ROOT(&vdi_state_root);
        sd_rw_unlock(&vdi_state_lock);
-
-       sd_mutex_lock(&vdi_family_mutex);
-
-       list_for_each_entry(member, &vdi_family_roots, roots_list) {
-               clean_family(member);
-               list_del(&member->roots_list);
-               free(member);
-       }
-
-       sd_mutex_unlock(&vdi_family_mutex);
 }
 
 int sd_delete_vdi(const char *name)
@@ -2098,60 +2045,3 @@ main_fn void free_vdi_state_snapshot(int epoch)
 
        panic("invalid free request for vdi state snapshot, epoch: %d", epoch);
 }
-
-static main_fn void do_vid_gc(struct vdi_family_member *member)
-{
-       struct vdi_state_entry *entry = member->entry;
-       uint32_t vid = entry->vid;
-       uint64_t oid = vid_to_vdi_oid(vid);
-       struct vdi_family_member *child;
-
-       rb_erase(&entry->node, &vdi_state_root);
-       free(entry);
-
-       list_for_each_entry(child, &member->child_list_head, child_list_node) {
-               do_vid_gc(child);
-       }
-
-       if (list_linked(&member->roots_list))
-               list_del(&member->roots_list);
-
-       free(member);
-
-       if (sd_store && sd_store->exist(oid, -1))
-               /* TODO: gc other objects */
-               sd_store->remove_object(oid, -1);
-
-       atomic_clear_bit(vid, sys->vdi_inuse);
-       atomic_clear_bit(vid, sys->vdi_deleted);
-}
-
-main_fn void run_vid_gc(uint32_t vid)
-{
-       struct vdi_state_entry *entry;
-       struct vdi_family_member *member, *root;
-
-       sd_write_lock(&vdi_state_lock);
-       sd_mutex_lock(&vdi_family_mutex);
-       entry = vdi_state_search(&vdi_state_root, vid);
-       if (!entry) {
-               sd_alert("vid %"PRIx32" doesn't have its entry", vid);
-               goto out;
-       }
-
-       member = entry->family_member;
-       root = lookup_root(member);
-
-       if (is_all_members_deleted(root)) {
-               sd_info("all members of the family (root: %"PRIx32
-                       ") are deleted", root->vid);
-               do_vid_gc(root);
-       } else
-               sd_info("not all members of the family (root: %"PRIx32
-                       ") are deleted", root->vid);
-
-out:
-       sd_mutex_unlock(&vdi_family_mutex);
-       sd_rw_unlock(&vdi_state_lock);
-
-}
-- 
1.9.1

-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
https://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to