]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/gssd/gssd_main_loop.c
gssd: unblock DNOTIFY_SIGNAL in case it was blocked.
[nfs-utils.git] / utils / gssd / gssd_main_loop.c
index 0559f7b7c7b9478dd223f2e76eb71818265eb332..b9f3a06520265c02f7ec5a14b1367d30297141c3 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));
@@ -116,6 +122,7 @@ gssd_run()
 
        init_client_list();
 
+       printerr(1, "beginning poll\n");
        while (1) {
                while (dir_changed) {
                        dir_changed = 0;