gssd: unblock DNOTIFY_SIGNAL in case it was blocked.
[nfs-utils.git] / utils / gssd / gssd_main_loop.c
index 84f04e9..b9f3a06 100644 (file)
@@ -99,6 +99,7 @@ gssd_run()
        int                     ret;
        struct sigaction        dn_act;
        int                     fd;
+       sigset_t                set;
 
        /* Taken from linux/Documentation/dnotify.txt: */
        dn_act.sa_sigaction = dir_notify_handler;
@@ -106,6 +107,11 @@ gssd_run()
        dn_act.sa_flags = SA_SIGINFO;
        sigaction(DNOTIFY_SIGNAL, &dn_act, NULL);
 
+       /* just in case the signal is blocked... */
+       sigemptyset(&set);
+       sigaddset(&set, DNOTIFY_SIGNAL);
+       sigprocmask(SIG_UNBLOCK, &set, NULL);
+
        if ((fd = open(pipefs_nfsdir, O_RDONLY)) == -1) {
                printerr(0, "ERROR: failed to open %s: %s\n",
                         pipefs_nfsdir, strerror(errno));