Current sheepdog never recycles VIDs. But it will cause problems e.g. VID space exhaustion, too much garbage inode objects.
Keeping deleted inode objects is required because living inodes (snapshots or clones) can point objects of the deleted inodes. So if every member of VDI family is deleted, it is safe to remove deleted inode objects. The above change requires much of changes for tests/functional, so I'll not apply this series to master soon. If you are interested in the future, please test it and report the result. The same thing can be found here: https://github.com/sheepdog/sheepdog/tree/gc-vid Hitoshi Mitake (4): sheep: let vdi state have parent VID sheep: construct data structures for representing family tree libsheepdog: provide atomic_clear_bit sheep: garbage collect needless VIDs include/bitops.h | 5 + include/internal_proto.h | 1 + sheep/group.c | 6 +- sheep/ops.c | 8 +- sheep/plain_store.c | 4 +- sheep/sheep_priv.h | 5 +- sheep/vdi.c | 238 ++++++++++++++++++++++++++++++++++++++++++++++- 7 files changed, 254 insertions(+), 13 deletions(-) -- 1.8.3.2 -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog