Commit 10be509c authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] procfs: remove some unneeded lock_kernel()s

From: William Lee Irwin III <wli@holomorphy.com>

Remove spurious BKL acquisitions in /proc/.  The BKL is not required to
access nr_threads for reporting, and get_locks_status() takes it
internally, wrapping all operations with it.
parent 1fe128d2
......@@ -497,11 +497,10 @@ static int ds1286_read_proc(char *page, char **start, off_t off,
static int locks_read_proc(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
int len;
lock_kernel();
len = get_locks_status(page, start, off, count);
unlock_kernel();
if (len < count) *eof = 1;
int len = get_locks_status(page, start, off, count);
if (len < count)
*eof = 1;
return len;
}
......
......@@ -81,11 +81,13 @@ void __init proc_root_init(void)
static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry)
{
if (dir->i_ino == PROC_ROOT_INO) { /* check for safety... */
lock_kernel();
/*
* nr_threads is actually protected by the tasklist_lock;
* however, it's conventional to do reads, especially for
* reporting, without any locking whatsoever.
*/
if (dir->i_ino == PROC_ROOT_INO) /* check for safety... */
dir->i_nlink = proc_root.nlink + nr_threads;
unlock_kernel();
}
if (!proc_lookup(dir, dentry)) {
return NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment