[Sheepdog] [PATCH] sheep: abstract out get_obj_list()

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Tue Dec 13 12:48:35 CET 2011


At Tue, 13 Dec 2011 15:27:29 +0800,
Liu Yuan wrote:
> 
> From: Liu Yuan <tailai.ly at taobao.com>
> 
> Current recovery logic needs to query underlying object store of object list
> in the specified epoch, in order to calculate object relocation. We need to abstract
> it out to adopt sheepdog to more stores.
> 
> Signed-off-by: Liu Yuan <tailai.ly at taobao.com>
> ---
>  sheep/sheep_priv.h   |    1 +
>  sheep/simple_store.c |   40 +++++++++++++++++++++++++++++++++++++++-
>  sheep/store.c        |   46 ++++++++++------------------------------------
>  3 files changed, 50 insertions(+), 37 deletions(-)
> 
> diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
> index 618267e..7c61032 100644
> --- a/sheep/sheep_priv.h
> +++ b/sheep/sheep_priv.h
> @@ -172,6 +172,7 @@ struct store_driver {
>  	int (*write)(uint64_t oid, struct siocb *);
>  	int (*read)(uint64_t oid, struct siocb *);
>  	int (*close)(uint64_t oid, struct siocb *);
> +	int (*get_objlist)(struct siocb *);
>  };
>  
>  extern void register_store_driver(struct store_driver *);
> diff --git a/sheep/simple_store.c b/sheep/simple_store.c
> index 424589f..441bc3f 100644
> --- a/sheep/simple_store.c
> +++ b/sheep/simple_store.c
> @@ -19,6 +19,7 @@
>  #include <sys/types.h>
>  #include <sys/stat.h>
>  #include <fcntl.h>
> +#include <dirent.h>
>  
>  #include "sheep_priv.h"
>  #include "strbuf.h"
> @@ -141,13 +142,50 @@ static int simple_store_close(uint64_t oid, struct siocb *iocb)
>  	return SD_RES_SUCCESS;
>  }
>  
> +static int simple_store_get_objlist(struct siocb *siocb)
> +{
> +	struct strbuf buf = STRBUF_INIT;
> +	int epoch = siocb->epoch;
> +	uint64_t *objlist = (uint64_t *)siocb->buf;
> +	DIR *dir;
> +	struct dirent *d;
> +	int ret = SD_RES_SUCCESS;
> +
> +	strbuf_addf(&buf,"%s%08u/", obj_path, epoch);

Space before "%s%08u/".

Other than this looks good.  I've applied after fixing it.

Thanks,

Kazutaka



More information about the sheepdog mailing list