X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Flockd%2Flockd.c;h=49183d2d9a7dc4adae7a7789bdc4cffcdb3f2e10;hp=05bc99938986879cfdd76b8cfeeb212ca02c1c16;hb=63049fd3c95c67df5ac175c746f8ec9058f8a76c;hpb=8b7ad01b14df1e7529b9ba8a1ea17df0d6004ef9 diff --git a/utils/lockd/lockd.c b/utils/lockd/lockd.c index 05bc999..49183d2 100644 --- a/utils/lockd/lockd.c +++ b/utils/lockd/lockd.c @@ -9,6 +9,9 @@ #include "config.h" #include +#include +#include +#include #include "nfslib.h" static void usage(const char *); @@ -21,8 +24,20 @@ 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); }