procfs: Kill the bkl in ioctl
authorFrederic Weisbecker <fweisbec@gmail.com>
Tue, 30 Mar 2010 05:32:50 +0000 (07:32 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Mon, 17 May 2010 01:06:24 +0000 (03:06 +0200)
There are no more users of procfs that implement the ioctl
callback. Drop the bkl from this path and warn on any use
of this callback.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: John Kacur <jkacur@redhat.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
fs/proc/inode.c

index 445a02b..afcda85 100644 (file)
@@ -231,9 +231,9 @@ static long proc_reg_unlocked_ioctl(struct file *file, unsigned int cmd, unsigne
                if (rv == -ENOIOCTLCMD)
                        rv = -EINVAL;
        } else if (ioctl) {
-               lock_kernel();
+               WARN_ONCE(1, "Procfs ioctl handlers must use unlocked_ioctl, "
+                         "%pf will be called without the Bkl held\n", ioctl);
                rv = ioctl(file->f_path.dentry->d_inode, file, cmd, arg);
-               unlock_kernel();
        }
 
        pde_users_dec(pde);