On Thu, Oct 24, 2013 at 05:46:22PM +0800, Robin Dong wrote:
> Add the max number of objects and add new MACRO for index of inode.
> 
> Signed-off-by: Robin Dong <[email protected]>
> ---
>  include/sheepdog_proto.h |   10 ++++++----
>  lib/option.c             |    3 +++
>  lib/sd_inode.c           |   38 ++++++++++++++++++++------------------
>  3 files changed, 29 insertions(+), 22 deletions(-)
> 
> diff --git a/include/sheepdog_proto.h b/include/sheepdog_proto.h
> index 8c9be31..0f26c5f 100644
> --- a/include/sheepdog_proto.h
> +++ b/include/sheepdog_proto.h
> @@ -96,7 +96,7 @@
>  #define VMSTATE_BIT (UINT64_C(1) << 62)
>  #define VDI_ATTR_BIT (UINT64_C(1) << 61)
>  #define VDI_BTREE_BIT (UINT64_C(1) << 60)
> -#define MAX_DATA_OBJS (1ULL << 20)
> +#define MAX_DATA_OBJS (1ULL << 32)
>  #define MAX_CHILDREN (1024U - 1) /* we use the last uint32_t as 
> btree_counter */
>  #define SD_MAX_VDI_LEN 256U
>  #define SD_MAX_VDI_TAG_LEN 256U
> @@ -108,8 +108,10 @@
>  #define SD_MAX_VDI_SIZE (SD_DATA_OBJ_SIZE * MAX_DATA_OBJS)
>  
>  #define SD_INODE_SIZE (sizeof(struct sd_inode))
> -#define SD_INODE_INDEX_SIZE (sizeof(uint32_t) * MAX_DATA_OBJS)
> -#define SD_INODE_HEADER_SIZE (sizeof(struct sd_inode) - SD_INODE_INDEX_SIZE)
> +#define SD_INODE_DATA_INDEX (1ULL << 20)
> +#define SD_INODE_DATA_INDEX_SIZE (sizeof(uint32_t) * SD_INODE_DATA_INDEX)
> +#define SD_INODE_HEADER_SIZE (sizeof(struct sd_inode) - \
> +             SD_INODE_DATA_INDEX_SIZE)
>  #define SD_ATTR_OBJ_SIZE (sizeof(struct sheepdog_vdi_attr))
>  #define CURRENT_VDI_ID 0
>  
> @@ -227,7 +229,7 @@ struct sd_inode {
>       uint32_t parent_vdi_id;
>       uint32_t child_vdi_id[MAX_CHILDREN];
>       uint32_t btree_counter;
> -     uint32_t data_vdi_id[MAX_DATA_OBJS];
> +     uint32_t data_vdi_id[SD_INODE_DATA_INDEX];
>  };
>  
>  struct sd_extent {
> diff --git a/lib/option.c b/lib/option.c
> index d12c205..a74049b 100644
> --- a/lib/option.c
> +++ b/lib/option.c
> @@ -71,6 +71,9 @@ int option_parse_size(const char *value, uint64_t *ret)
>               goto err;
>  
>       switch (*postfix) {
> +     case 'P':
> +     case 'p':
> +             sizef *= 1024;
>       case 'T':
>       case 't':
>               sizef *= 1024;

Need to update help message of option_parse_size too.

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

Reply via email to