[sheepdog] [PATCH v2] sheep: make epoch_log_read() clean
MORITA Kazutaka
morita.kazutaka at gmail.com
Thu Mar 21 16:43:50 CET 2013
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(-)
Applied, thanks!
Kazutaka
More information about the sheepdog
mailing list