It is possible for a race to cause a name to appear when an rpc_pipefs dir is scanned but to no longer be present when we try to open it. So if the error is ENOENT, don't complain. This is similar to commit 5ac9bcfd820f09af4d3f87f1f7346d896f70bc9a Author: David Jeffery <djeffery@xxxxxxxxxx> Date: Wed Jan 16 15:21:55 2013 -0500 rpc.idmapd: Ignore open failures in dirscancb() which addressed a similar issue in idmapd. Signed-off-by: NeilBrown <neilb@xxxxxxx> diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c index b7e2bbb..2d3dbec 100644 --- a/utils/gssd/gssd_proc.c +++ b/utils/gssd/gssd_proc.c @@ -467,8 +467,9 @@ process_clnt_dir(char *dir, char *pdir) } sprintf(clp->dirname, "%s/%s", pdir, dir); if ((clp->dir_fd = open(clp->dirname, O_RDONLY)) == -1) { - printerr(0, "ERROR: can't open %s: %s\n", - clp->dirname, strerror(errno)); + if (errno != ENOENT) + printerr(0, "ERROR: can't open %s: %s\n", + clp->dirname, strerror(errno)); goto fail_destroy_client; } fcntl(clp->dir_fd, F_SETSIG, DNOTIFY_SIGNAL);
Attachment:
signature.asc
Description: PGP signature