diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-02-27 17:58:13 +0100 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2012-03-21 15:34:17 -0400 |
commit | 1c2572897be094a724b562737d39affcbefcb035 (patch) | |
tree | cf454960df2902a82190472a63fb3712ca04e669 /kernel | |
parent | c060c3633b3319b17aee6a85b98931c265199351 (diff) |
fs: fs_struct use seqlock
Replace the open coded seqlock with a real one, so RT can handle it.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/fork.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 0429130c3f2f..1643f63823d7 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -856,13 +856,13 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk) struct fs_struct *fs = current->fs; if (clone_flags & CLONE_FS) { /* tsk->fs is already what we want */ - spin_lock(&fs->lock); + seq_spin_lock(&fs->lock); if (fs->in_exec) { - spin_unlock(&fs->lock); + seq_spin_unlock(&fs->lock); return -EAGAIN; } fs->users++; - spin_unlock(&fs->lock); + seq_spin_unlock(&fs->lock); return 0; } tsk->fs = copy_fs_struct(fs); @@ -1729,13 +1729,13 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) if (new_fs) { fs = current->fs; - spin_lock(&fs->lock); + seq_spin_lock(&fs->lock); current->fs = new_fs; if (--fs->users) new_fs = NULL; else new_fs = fs; - spin_unlock(&fs->lock); + seq_spin_unlock(&fs->lock); } if (new_fd) { |