Current init_objlist_and_vdi_bitmap() sets a bit of corresponding VDI
before initializing the VDI. This should be done after the
initialization for defensive purpose.

Signed-off-by: Hitoshi Mitake <[email protected]>
Signed-off-by: MORITA Kazutaka <[email protected]>
---
 sheep/plain_store.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sheep/plain_store.c b/sheep/plain_store.c
index 6a2ee56..e35a7e7 100644
--- a/sheep/plain_store.c
+++ b/sheep/plain_store.c
@@ -191,6 +191,7 @@ static int init_vdi_state(uint64_t oid, char *wd, uint32_t 
epoch)
 
        add_vdi_state(oid_to_vid(oid), inode->nr_copies,
                      vdi_is_snapshot(inode));
+       set_bit(oid_to_vid(oid), sys->vdi_inuse);
 
        ret = SD_RES_SUCCESS;
 out:
@@ -206,7 +207,6 @@ static int init_objlist_and_vdi_bitmap(uint64_t oid, char 
*wd, uint32_t epoch,
 
        if (is_vdi_obj(oid)) {
                sd_debug("found the VDI object %" PRIx64, oid);
-               set_bit(oid_to_vid(oid), sys->vdi_inuse);
                ret = init_vdi_state(oid, wd, epoch);
                if (ret != SD_RES_SUCCESS)
                        return ret;
-- 
1.7.10.4

-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to