diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2005-01-21 16:46:58 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2005-01-21 16:46:58 +0000 |
commit | 5776285270ffa357a93e8fdb3c089ae41713b173 (patch) | |
tree | 77604bd485872cb67f46d676b80c86030986118b /kernel/dev.c | |
parent | 773d4aea20b13a0355db6dce9c04a8388ff2258c (diff) | |
download | libfuse-5776285270ffa357a93e8fdb3c089ae41713b173.tar.gz |
fix
Diffstat (limited to 'kernel/dev.c')
-rw-r--r-- | kernel/dev.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/kernel/dev.c b/kernel/dev.c index ef46eb9..8ce078b 100644 --- a/kernel/dev.c +++ b/kernel/dev.c @@ -65,6 +65,24 @@ static inline void restore_sigs(sigset_t *oldset) sigprocmask(SIG_SETMASK, oldset, NULL); } #else +#ifdef HAVE_RECALC_SIGPENDING_TSK +static inline void block_sigs(sigset_t *oldset) +{ + spin_lock_irq(¤t->sighand->siglock); + *oldset = current->blocked; + siginitsetinv(¤t->blocked, sigmask(SIGKILL) & ~oldset->sig[0]); + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); +} + +static inline void restore_sigs(sigset_t *oldset) +{ + spin_lock_irq(¤t->sighand->siglock); + current->blocked = *oldset; + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); +} +#else static inline void block_sigs(sigset_t *oldset) { spin_lock_irq(¤t->sigmask_lock); @@ -82,6 +100,7 @@ static inline void restore_sigs(sigset_t *oldset) spin_unlock_irq(¤t->sigmask_lock); } #endif +#endif void fuse_reset_request(struct fuse_req *req) { |