On Fri, Oct 25, 2013 at 01:10:18PM +0800, Liu Yuan wrote: > On Thu, Oct 24, 2013 at 05:46:19PM +0800, Robin Dong wrote: > > B-tree is just a abstract structure so it need to call callback-function to > > read > > and write nodes. > > > > Signed-off-by: Robin Dong <[email protected]> > > --- > > dog/cluster.c | 2 +- > > dog/dog.h | 9 +++++++++ > > dog/vdi.c | 38 ++++++++++++++++++++++++++++---------- > > include/sheepdog_proto.h | 18 +++++++++--------- > > lib/sd_inode.c | 6 ++++-- > > sheep/sheep_priv.h | 9 +++++++++ > > sheep/vdi.c | 13 ++++++++++++- > > sheepfs/volume.c | 39 +++++++++++++++++++++++++++++++++++++-- > > 8 files changed, 109 insertions(+), 25 deletions(-) > > > > diff --git a/dog/cluster.c b/dog/cluster.c > > index 62b78d0..b432302 100644 > > --- a/dog/cluster.c > > +++ b/dog/cluster.c > > @@ -259,7 +259,7 @@ static void fill_object_tree(uint32_t vid, const char > > *name, const char *tag, > > /* fill data object id */ > > nr_objs = count_data_objs(i); > > for (uint64_t idx = 0; idx < nr_objs; idx++) { > > - vdi_id = sd_inode_get_vdi(i, idx); > > + vdi_id = INODE_GET_VDI(i, idx); > > if (vdi_id) { > > uint64_t oid = vid_to_data_oid(vdi_id, idx); > > object_tree_insert(oid, i->nr_copies, i->copy_policy); > > diff --git a/dog/dog.h b/dog/dog.h > > index 769fc6c..c2832bb 100644 > > --- a/dog/dog.h > > +++ b/dog/dog.h > > @@ -85,6 +85,15 @@ void show_progress(uint64_t done, uint64_t total, bool > > raw); > > size_t get_store_objsize(uint8_t copy_policy, uint64_t oid); > > bool is_erasure_oid(uint64_t oid, uint8_t policy); > > > > +int write_btree_node(uint64_t id, void *mem, unsigned int len, > > + int copies, int copy_policy, int create); > > +int read_btree_node(uint64_t id, void **mem, unsigned int len); > > + > > I'd suggest use different for reader/writer, e.g, would better name them as > {sheep,dog,sheepfs}_bnode_{reader,writer} for indexing friendly and > readability >
And conventionally we use oid for object id. Thanks Yuan -- sheepdog mailing list [email protected] http://lists.wpkg.org/mailman/listinfo/sheepdog
