[sheepdog] [PATCH] sheep: let sheep return correct exit status when locking a base directory fails
Hitoshi Mitake
mitake.hitoshi at gmail.com
Thu May 9 03:14:38 CEST 2013
At Thu, 09 May 2013 01:18:44 +0900,
MORITA Kazutaka wrote:
>
> At Tue, 7 May 2013 01:15:41 +0900,
> Hitoshi Mitake wrote:
> >
> > Currently, lock_and_daemon() always returns 0 as its exit
> > status. But this behavior is confusing because users cannot detect
> > errors during locking a base directory via the exit status. This patch
> > modifies lock_and_daemon() for returning correct exit status.
> >
> > Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> > ---
> > sheep/sheep.c | 49 +++++++++++++++++++++++++++++++++++++------------
> > 1 files changed, 37 insertions(+), 12 deletions(-)
> >
> > diff --git a/sheep/sheep.c b/sheep/sheep.c
> > index a7e3820..64f04ca 100644
> > --- a/sheep/sheep.c
> > +++ b/sheep/sheep.c
> > @@ -392,7 +392,12 @@ static void check_host_env(void)
> >
> > static int lock_and_daemon(bool daemonize, const char *base_dir)
> > {
> > - int ret, devnull_fd = 0;
> > + int ret, devnull_fd = 0, status = 0;
> > + int pipefd[2];
> > +
> > + ret = pipe(pipefd);
> > + if (ret < 0)
> > + panic("pipe() for passing exit status failed: %m");
>
> Can we use eventfd instead of pipe?
OK, eventfd is more simple. I agree with using it.
I'll send v2 later.
Thanks,
Hitoshi
More information about the sheepdog
mailing list