Prev: [PATCH 1/2] Hyperv detection - code cleanup
Next: [PATCH 3/8] autofs4: Pushdown the bkl from ioctl
From: Frederic Weisbecker on 19 May 2010 13:30 Pushdown the bkl to autofs_root_ioctl. Signed-off-by: Frederic Weisbecker <fweisbec(a)gmail.com> Cc: H. Peter Anvin <hpa(a)zytor.com> Cc: Autofs <autofs(a)linux.kernel.org> Cc: Thomas Gleixner <tglx(a)linutronix.de> Cc: John Kacur <jkacur(a)redhat.com> Cc: Arnd Bergmann <arnd(a)arndb.de> --- fs/autofs/root.c | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) diff --git a/fs/autofs/root.c b/fs/autofs/root.c index 8713c7c..dc16b3c 100644 --- a/fs/autofs/root.c +++ b/fs/autofs/root.c @@ -25,12 +25,12 @@ static int autofs_root_symlink(struct inode *,struct dentry *,const char *); static int autofs_root_unlink(struct inode *,struct dentry *); static int autofs_root_rmdir(struct inode *,struct dentry *); static int autofs_root_mkdir(struct inode *,struct dentry *,int); -static int autofs_root_ioctl(struct inode *, struct file *,unsigned int,unsigned long); +static long autofs_root_ioctl(struct file *, unsigned int, unsigned long); const struct file_operations autofs_root_operations = { .read = generic_read_dir, .readdir = autofs_root_readdir, - .ioctl = autofs_root_ioctl, + .unlocked_ioctl = autofs_root_ioctl, }; const struct inode_operations autofs_root_inode_operations = { @@ -545,7 +545,7 @@ static inline int autofs_expire_run(struct super_block *sb, * ioctl()'s on the root directory is the chief method for the daemon to * generate kernel reactions */ -static int autofs_root_ioctl(struct inode *inode, struct file *filp, +static int autofs_root_ioctl_unlocked(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) { struct autofs_sb_info *sbi = autofs_sbi(inode->i_sb); @@ -579,3 +579,16 @@ static int autofs_root_ioctl(struct inode *inode, struct file *filp, return -ENOSYS; } } + +static long autofs_root_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + long ret; + struct inode *inode = filp->f_dentry->d_inode; + + lock_kernel(); + ret = autofs_root_ioctl_unlocked(inode, filp, cmd, arg); + unlock_kernel(); + + return ret; +} -- 1.6.2.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: [PATCH 1/2] Hyperv detection - code cleanup Next: [PATCH 3/8] autofs4: Pushdown the bkl from ioctl |