X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Flockd%2Flockd.c;h=71b31b0068c847ed522a41e1355d89b3370c2702;hp=05bc99938986879cfdd76b8cfeeb212ca02c1c16;hb=bec968578d97eabc63ae4a12bdeb2b33f40baec4;hpb=8b7ad01b14df1e7529b9ba8a1ea17df0d6004ef9 diff --git a/utils/lockd/lockd.c b/utils/lockd/lockd.c index 05bc999..71b31b0 100644 --- a/utils/lockd/lockd.c +++ b/utils/lockd/lockd.c @@ -6,10 +6,17 @@ * */ -#include "config.h" +#ifdef HAVE_CONFIG_H +#include +#endif #include -#include "nfslib.h" +#include +#include +#include +#include + + static void usage(const char *); @@ -20,9 +27,21 @@ main(int argc, char **argv) if (argc > 1) usage (argv [0]); - - if ((error = lockdsvc()) < 0) - perror("lockdsvc"); + + if (chdir(NFS_STATEDIR)) { + fprintf(stderr, "%s: chdir(%s) failed: %s\n", + argv [0], NFS_STATEDIR, strerror(errno)); + exit(1); + } + + if ((error = lockdsvc()) < 0) { + if (errno == EINVAL) + /* Ignore EINVAL since kernel may start + lockd automatically. */ + error = 0; + else + perror("lockdsvc"); + } return (error != 0); }