From: Oleg Nesterov <oleg@redhat.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
David Howells <dhowells@redhat.com>,
James Morris <jmorris@namei.org>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Roland McGrath <roland@redhat.com>,
Stephen Smalley <sds@tycho.nsa.gov>,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 -mm 1/2] rename is_single_threaded(task) to current_is_single_threaded(void)
Date: Fri, 10 Jul 2009 03:48:23 +0200 [thread overview]
Message-ID: <20090710014823.GB4723@redhat.com> (raw)
In-Reply-To: <20090710013322.GA27719@infradead.org>
(on top of rework-fix-is_single_threaded.patch)
- is_single_threaded(task) is not safe unless task == current,
we can't use task->signal or task->mm.
- it doesn't make sense unless task == current, the task can
fork right after the check.
Rename it to current_is_single_threaded() and kill the argument.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: James Morris <jmorris@namei.org>
---
include/linux/sched.h | 2 +-
lib/is_single_threaded.c | 3 ++-
security/selinux/hooks.c | 2 +-
security/keys/process_keys.c | 2 +-
4 files changed, 5 insertions(+), 4 deletions(-)
--- WAIT/include/linux/sched.h~ISS_1_RENAME 2009-07-01 20:20:57.000000000 +0200
+++ WAIT/include/linux/sched.h 2009-07-09 22:14:21.000000000 +0200
@@ -2055,7 +2055,7 @@ static inline unsigned long wait_task_in
#define for_each_process(p) \
for (p = &init_task ; (p = next_task(p)) != &init_task ; )
-extern bool is_single_threaded(struct task_struct *);
+extern bool current_is_single_threaded(void);
/*
* Careful: do_each_thread/while_each_thread is a double loop so
--- WAIT/lib/is_single_threaded.c~ISS_1_RENAME 2009-07-09 19:43:27.000000000 +0200
+++ WAIT/lib/is_single_threaded.c 2009-07-09 22:16:29.000000000 +0200
@@ -15,8 +15,9 @@
/*
* Returns true if the task does not share ->mm with another thread/process.
*/
-bool is_single_threaded(struct task_struct *task)
+bool current_is_single_threaded(void)
{
+ struct task_struct *task = current;
struct mm_struct *mm = task->mm;
struct task_struct *p, *t;
bool ret;
--- WAIT/security/selinux/hooks.c~ISS_1_RENAME 2009-07-03 11:15:08.000000000 +0200
+++ WAIT/security/selinux/hooks.c 2009-07-09 22:17:58.000000000 +0200
@@ -5182,7 +5182,7 @@ static int selinux_setprocattr(struct ta
/* Only allow single threaded processes to change context */
error = -EPERM;
- if (!is_single_threaded(p)) {
+ if (!current_is_single_threaded()) {
error = security_bounded_transition(tsec->sid, sid);
if (error)
goto abort_change;
--- WAIT/security/keys/process_keys.c~ISS_1_RENAME 2009-04-06 00:03:42.000000000 +0200
+++ WAIT/security/keys/process_keys.c 2009-07-09 22:18:31.000000000 +0200
@@ -702,7 +702,7 @@ long join_session_keyring(const char *na
/* only permit this if there's a single thread in the thread group -
* this avoids us having to adjust the creds on all threads and risking
* ENOMEM */
- if (!is_single_threaded(current))
+ if (!current_is_single_threaded())
return -EMLINK;
new = prepare_creds();
next prev parent reply other threads:[~2009-07-10 1:52 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-09 21:28 [PATCH -mm 1/2] rename is_single_threaded(task) to is_current_single_threaded(void) Oleg Nesterov
2009-07-09 23:04 ` James Morris
2009-07-10 1:33 ` Christoph Hellwig
2009-07-10 1:46 ` Oleg Nesterov
2009-07-10 1:48 ` Oleg Nesterov [this message]
2009-07-10 14:07 ` [PATCH v2 -mm 1/2] rename is_single_threaded(task) to current_is_single_threaded(void) David Howells
2009-07-10 1:48 ` [PATCH v2 -mm 2/2] current_is_single_threaded: don't use ->mmap_sem Oleg Nesterov
2009-07-10 14:07 ` David Howells
2009-07-12 22:12 ` James Morris
2009-07-13 23:56 ` Oleg Nesterov
2009-07-16 23:41 ` James Morris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090710014823.GB4723@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=dhowells@redhat.com \
--cc=hch@infradead.org \
--cc=jmorris@namei.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=roland@redhat.com \
--cc=sds@tycho.nsa.gov \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.