[sheepdog] [PATCH v2] sheep: make epoch_log_read() clean
MORITA Kazutaka
morita.kazutaka at gmail.com
Thu Mar 21 16:05:13 CET 2013
At Thu, 21 Mar 2013 23:57:41 +0900,
MORITA Kazutaka wrote:
>
> At Tue, 19 Mar 2013 11:36:40 +0900,
> Hitoshi Mitake wrote:
> >
> > Current epoch_log_read() and the way of treating epoch files are
> > confusing. Because they heavily depend on the condition:
> > sizeof(time_t) < sizeof(struct sd_node). The condition is true
> > currently, but this requirement is implicit and hard to understand.
> >
> > In addition, epoch_log_read() doesn't handle a rise of EINTR when it
> > calls read(). This behavior might cause a subtle bug.
> >
> > This patch eliminates the implicit requirement and adds the handling
> > of EINTR. For doing it, this patch implements a new function,
> > epoch_log_read_with_timestamp(). If callers require a timestamp at
> > tails of epoch files, they should call this one instead of
> > epoch_log_read().
> >
> > Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> > ---
> >
> > v2
> > - don't change the member "time" of struct epoch_log for keeping alignment
> > - avoid needless memcpy() for timestamp
> >
> > include/internal_proto.h | 2 +-
> > sheep/group.c | 18 +++++++++++---
> > sheep/ops.c | 23 +++++++++++------
> > sheep/sheep_priv.h | 6 ++++-
> > sheep/store.c | 59 ++++++++++++++++++++++++++++++++++++---------
> > 5 files changed, 82 insertions(+), 26 deletions(-)
>
> This patch cannot be applied to the current master. Can you rebase
> it?
Oops, I forgot to fetch the latest tree. This patch can be applied
without problems, sorry for that.
Thanks,
Kazutaka
More information about the sheepdog
mailing list