Generally, we want this daemon started before nfsd starts. Deal with the situation where the pipe hasn't shown up yet. Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> --- utils/clstated/clstated.c | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) diff --git a/utils/clstated/clstated.c b/utils/clstated/clstated.c index 93a2710..aab09a7 100644 --- a/utils/clstated/clstated.c +++ b/utils/clstated/clstated.c @@ -75,10 +75,17 @@ usage(char *progname) static int clstate_pipe_open(struct clstate_client *clnt) { - clnt->cl_fd = open(pipepath, O_RDWR, 0); - if (clnt->cl_fd < 0) { - xlog(L_ERROR, "%s: unable to open %s: %m", __func__, pipepath); - return clnt->cl_fd; + /* loop until the pipe is present or open fails for another reason */ + for (;;) { + clnt->cl_fd = open(pipepath, O_RDWR, 0); + if (clnt->cl_fd >= 0) { + break; + } else if (errno != ENOENT) { + xlog(D_GENERAL, "%s: unable to open %s: %m", __func__, + pipepath); + return clnt->cl_fd; + } + sleep(1); } event_set(&clnt->cl_event, clnt->cl_fd, EV_READ, clstatecb, clnt); -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html