diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-03-28 01:05:32 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-03-28 01:05:32 +0000 |
commit | 8d45bf644aecb6993c2a82b86a4527b33029ed8f (patch) | |
tree | 7172d39a813e188d22205f5c40e8fcc605c25694 /source/smbd/oplock_linux.c | |
parent | 662e1bea1b5e8ca8fb842f7ef76f848541116760 (diff) | |
download | samba-8d45bf644aecb6993c2a82b86a4527b33029ed8f.tar.gz samba-8d45bf644aecb6993c2a82b86a4527b33029ed8f.tar.xz samba-8d45bf644aecb6993c2a82b86a4527b33029ed8f.zip |
it is possible for some of the real time signals to be used by glibc,
which then changes SIGRTMIN. It is also possible for bash to leave
some real time signals blocked at startup. This fixes both problems.
Diffstat (limited to 'source/smbd/oplock_linux.c')
-rw-r--r-- | source/smbd/oplock_linux.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/smbd/oplock_linux.c b/source/smbd/oplock_linux.c index deed0c51073..84083dffc97 100644 --- a/source/smbd/oplock_linux.c +++ b/source/smbd/oplock_linux.c @@ -39,7 +39,7 @@ static SIG_ATOMIC_T fd_pending_array[FD_PENDING_SIZE]; #endif #ifndef RT_SIGNAL_LEASE -#define RT_SIGNAL_LEASE 33 +#define RT_SIGNAL_LEASE (SIGRTMIN+1) #endif #ifndef F_SETSIG @@ -296,6 +296,9 @@ struct kernel_oplocks *linux_init_kernel_oplocks(void) koplocks.msg_waiting = linux_oplock_msg_waiting; koplocks.notification_fd = -1; + /* the signal can start off blocked due to a bug in bash */ + BlockSignals(False, RT_SIGNAL_LEASE); + DEBUG(3,("Linux kernel oplocks enabled\n")); return &koplocks; |