Prev: [RFC] linux-input: dynamically allocate ABS axis information
Next: [PATCH 8/8] ia64: Use unlocked_ioctl from perfmon
From: Frederic Weisbecker on 19 May 2010 13:30 Pushdown the bkl to ecryptfs_ioctl. Signed-off-by: Frederic Weisbecker <fweisbec(a)gmail.com> Cc: Tyler Hicks <tyhicks(a)linux.vnet.ibm.com> Cc: Dustin Kirkland <kirkland(a)canonical.com> Cc: Ecryptfs <ecryptfs-devel(a)lists.launchpad.net> Cc: Thomas Gleixner <tglx(a)linutronix.de> Cc: John Kacur <jkacur(a)redhat.com> Cc: Arnd Bergmann <arnd(a)arndb.de> --- fs/ecryptfs/file.c | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c index e7440a6..9352613 100644 --- a/fs/ecryptfs/file.c +++ b/fs/ecryptfs/file.c @@ -294,12 +294,12 @@ static int ecryptfs_fasync(int fd, struct file *file, int flag) return rc; } -static int ecryptfs_ioctl(struct inode *inode, struct file *file, +static long ecryptfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg); const struct file_operations ecryptfs_dir_fops = { .readdir = ecryptfs_readdir, - .ioctl = ecryptfs_ioctl, + .unlocked_ioctl = ecryptfs_ioctl, .open = ecryptfs_open, .flush = ecryptfs_flush, .release = ecryptfs_release, @@ -315,7 +315,7 @@ const struct file_operations ecryptfs_main_fops = { .write = do_sync_write, .aio_write = generic_file_aio_write, .readdir = ecryptfs_readdir, - .ioctl = ecryptfs_ioctl, + .unlocked_ioctl = ecryptfs_ioctl, .mmap = generic_file_mmap, .open = ecryptfs_open, .flush = ecryptfs_flush, @@ -326,8 +326,8 @@ const struct file_operations ecryptfs_main_fops = { }; static int -ecryptfs_ioctl(struct inode *inode, struct file *file, unsigned int cmd, - unsigned long arg) +ecryptfs_ioctl_unlocked(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg) { int rc = 0; struct file *lower_file = NULL; @@ -341,3 +341,16 @@ ecryptfs_ioctl(struct inode *inode, struct file *file, unsigned int cmd, rc = -ENOTTY; return rc; } + +static long ecryptfs_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + long ret; + struct inode *inode = file->f_dentry->d_inode; + + lock_kernel(); + ret = ecryptfs_ioctl_unlocked(inode, file, 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/ |