diff options
author | Nick Piggin <npiggin@kernel.dk> | 2010-08-17 14:37:35 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-08-18 08:35:47 -0400 |
commit | ee2ffa0dfdd2db19705f2ba1c6a4c0bfe8122dd8 (patch) | |
tree | e48400d1a33f8d2e68589ccfd61637aa64462f08 /security/selinux/hooks.c | |
parent | b04f784e5d19ed58892833dae845738972cea260 (diff) |
fs: cleanup files_lock locking
fs: cleanup files_lock locking
Lock tty_files with a new spinlock, tty_files_lock; provide helpers to
manipulate the per-sb files list; unexport the files_lock spinlock.
Cc: linux-kernel@vger.kernel.org
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'security/selinux/hooks.c')
-rw-r--r-- | security/selinux/hooks.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 42043f96e54f..bd7da0f0ccf3 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -2170,7 +2170,7 @@ static inline void flush_unauthorized_files(const struct cred *cred, | |||
2170 | 2170 | ||
2171 | tty = get_current_tty(); | 2171 | tty = get_current_tty(); |
2172 | if (tty) { | 2172 | if (tty) { |
2173 | file_list_lock(); | 2173 | spin_lock(&tty_files_lock); |
2174 | if (!list_empty(&tty->tty_files)) { | 2174 | if (!list_empty(&tty->tty_files)) { |
2175 | struct inode *inode; | 2175 | struct inode *inode; |
2176 | 2176 | ||
@@ -2186,7 +2186,7 @@ static inline void flush_unauthorized_files(const struct cred *cred, | |||
2186 | drop_tty = 1; | 2186 | drop_tty = 1; |
2187 | } | 2187 | } |
2188 | } | 2188 | } |
2189 | file_list_unlock(); | 2189 | spin_unlock(&tty_files_lock); |
2190 | tty_kref_put(tty); | 2190 | tty_kref_put(tty); |
2191 | } | 2191 | } |
2192 | /* Reset controlling tty. */ | 2192 | /* Reset controlling tty. */ |