aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-04-30 03:53:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-30 11:29:37 -0400
commit4e4c22c71144c1b2e22c257ec6cf08ccb5be1165 (patch)
tree0a41fb405ab60654f70ead9698d5ce414a066c37 /fs
parent80fe728d593e3a048a56610de932919f7d6d968a (diff)
signals: add set_restore_sigmask
This adds the set_restore_sigmask() inline in <linux/thread_info.h> and replaces every set_thread_flag(TIF_RESTORE_SIGMASK) with a call to it. No change, but abstracts the details of the flag protocol from all the calls. Signed-off-by: Roland McGrath <roland@redhat.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/compat.c6
-rw-r--r--fs/eventpoll.c3
-rw-r--r--fs/select.c4
3 files changed, 6 insertions, 7 deletions
diff --git a/fs/compat.c b/fs/compat.c
index 2ce4456aad30..9964d542ae9e 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -1720,7 +1720,7 @@ sticky:
1720 if (sigmask) { 1720 if (sigmask) {
1721 memcpy(&current->saved_sigmask, &sigsaved, 1721 memcpy(&current->saved_sigmask, &sigsaved,
1722 sizeof(sigsaved)); 1722 sizeof(sigsaved));
1723 set_thread_flag(TIF_RESTORE_SIGMASK); 1723 set_restore_sigmask();
1724 } 1724 }
1725 } else if (sigmask) 1725 } else if (sigmask)
1726 sigprocmask(SIG_SETMASK, &sigsaved, NULL); 1726 sigprocmask(SIG_SETMASK, &sigsaved, NULL);
@@ -1791,7 +1791,7 @@ asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds,
1791 if (sigmask) { 1791 if (sigmask) {
1792 memcpy(&current->saved_sigmask, &sigsaved, 1792 memcpy(&current->saved_sigmask, &sigsaved,
1793 sizeof(sigsaved)); 1793 sizeof(sigsaved));
1794 set_thread_flag(TIF_RESTORE_SIGMASK); 1794 set_restore_sigmask();
1795 } 1795 }
1796 ret = -ERESTARTNOHAND; 1796 ret = -ERESTARTNOHAND;
1797 } else if (sigmask) 1797 } else if (sigmask)
@@ -2117,7 +2117,7 @@ asmlinkage long compat_sys_epoll_pwait(int epfd,
2117 if (err == -EINTR) { 2117 if (err == -EINTR) {
2118 memcpy(&current->saved_sigmask, &sigsaved, 2118 memcpy(&current->saved_sigmask, &sigsaved,
2119 sizeof(sigsaved)); 2119 sizeof(sigsaved));
2120 set_thread_flag(TIF_RESTORE_SIGMASK); 2120 set_restore_sigmask();
2121 } else 2121 } else
2122 sigprocmask(SIG_SETMASK, &sigsaved, NULL); 2122 sigprocmask(SIG_SETMASK, &sigsaved, NULL);
2123 } 2123 }
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 0d237182d721..71af2fc0041e 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -1279,7 +1279,7 @@ asmlinkage long sys_epoll_pwait(int epfd, struct epoll_event __user *events,
1279 if (error == -EINTR) { 1279 if (error == -EINTR) {
1280 memcpy(&current->saved_sigmask, &sigsaved, 1280 memcpy(&current->saved_sigmask, &sigsaved,
1281 sizeof(sigsaved)); 1281 sizeof(sigsaved));
1282 set_thread_flag(TIF_RESTORE_SIGMASK); 1282 set_restore_sigmask();
1283 } else 1283 } else
1284 sigprocmask(SIG_SETMASK, &sigsaved, NULL); 1284 sigprocmask(SIG_SETMASK, &sigsaved, NULL);
1285 } 1285 }
@@ -1309,4 +1309,3 @@ static int __init eventpoll_init(void)
1309 return 0; 1309 return 0;
1310} 1310}
1311fs_initcall(eventpoll_init); 1311fs_initcall(eventpoll_init);
1312
diff --git a/fs/select.c b/fs/select.c
index 00f58c5c7e05..32ce2b32fad1 100644
--- a/fs/select.c
+++ b/fs/select.c
@@ -498,7 +498,7 @@ sticky:
498 if (sigmask) { 498 if (sigmask) {
499 memcpy(&current->saved_sigmask, &sigsaved, 499 memcpy(&current->saved_sigmask, &sigsaved,
500 sizeof(sigsaved)); 500 sizeof(sigsaved));
501 set_thread_flag(TIF_RESTORE_SIGMASK); 501 set_restore_sigmask();
502 } 502 }
503 } else if (sigmask) 503 } else if (sigmask)
504 sigprocmask(SIG_SETMASK, &sigsaved, NULL); 504 sigprocmask(SIG_SETMASK, &sigsaved, NULL);
@@ -805,7 +805,7 @@ asmlinkage long sys_ppoll(struct pollfd __user *ufds, unsigned int nfds,
805 if (sigmask) { 805 if (sigmask) {
806 memcpy(&current->saved_sigmask, &sigsaved, 806 memcpy(&current->saved_sigmask, &sigsaved,
807 sizeof(sigsaved)); 807 sizeof(sigsaved));
808 set_thread_flag(TIF_RESTORE_SIGMASK); 808 set_restore_sigmask();
809 } 809 }
810 ret = -ERESTARTNOHAND; 810 ret = -ERESTARTNOHAND;
811 } else if (sigmask) 811 } else if (sigmask)