[sheepdog] [PATCH] collie/farm: fixed wrong way of calculating nr_vmstate_obejct
Liu Yuan
namei.unix at gmail.com
Tue Jun 25 08:58:35 CEST 2013
On Tue, Jun 25, 2013 at 02:37:55PM +0800, Liu Yuan wrote:
> On Mon, Jun 24, 2013 at 10:54:17PM -0700, Kai Zhang wrote:
> > Without this patch, tests/functional/030 will not pass.
> >
> > Signed-off-by: Kai Zhang <kyle at zelin.io>
> > ---
> > collie/cluster.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/collie/cluster.c b/collie/cluster.c
> > index 4e94ad2..21218dc 100644
> > --- a/collie/cluster.c
> > +++ b/collie/cluster.c
> > @@ -273,7 +273,9 @@ static void fill_object_tree(uint32_t vid, const char *name, const char *tag,
> > }
> >
> > /* fill vmstate object id */
> > - nr_vmstate_object = (i->vm_state_size / SD_DATA_OBJ_SIZE) + 1;
> > + nr_vmstate_object = i->vm_state_size / SD_DATA_OBJ_SIZE;
> > + if (i->vm_state_size % SD_DATA_OBJ_SIZE != 0)
> > + nr_vmstate_object++;
>
> How about following?
> nr_vmstate_object = i->vm_state_size ?
> i->vm_state_size / SD_DATA_OBJ_SIZE + 1 : 0;
>
It seems that you are worried about vm_state_size not aligned to SD_DATA_OBJ_SIZE,
so following is better approach:
nr_vmstate_object = round_up(i->vm_state_size, SD_DATA_OBJ_SIZE) / SD_DATA_OBJ_SIZE;
Thanks,
Yuan
More information about the sheepdog
mailing list