Signed-off-by: Erez Zadok <ezk@xxxxxxxxxxxxx> --- fs/unionfs/commonfops.c | 32 ++++++-------------------------- 1 files changed, 6 insertions(+), 26 deletions(-) diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c index 50e5775..c99b519 100644 --- a/fs/unionfs/commonfops.c +++ b/fs/unionfs/commonfops.c @@ -661,31 +661,6 @@ out: return err; } -/* pass the ioctl to the lower fs */ -static long do_ioctl(struct file *file, unsigned int cmd, unsigned long arg) -{ - struct file *lower_file; - int err; - - lower_file = unionfs_lower_file(file); - - err = -ENOTTY; - if (!lower_file || !lower_file->f_op) - goto out; - if (lower_file->f_op->unlocked_ioctl) { - err = lower_file->f_op->unlocked_ioctl(lower_file, cmd, arg); - } else if (lower_file->f_op->ioctl) { - lock_kernel(); - err = lower_file->f_op->ioctl( - lower_file->f_path.dentry->d_inode, - lower_file, cmd, arg); - unlock_kernel(); - } - -out: - return err; -} - /* * return to user-space the branch indices containing the file in question * @@ -752,6 +727,7 @@ out: long unionfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { long err; + struct file *lower_file; unionfs_read_lock(file->f_path.dentry->d_sb); @@ -775,7 +751,11 @@ long unionfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg) default: /* pass the ioctl down */ - err = do_ioctl(file, cmd, arg); + lower_file = unionfs_lower_file(file); + if (lower_file) + err = vfs_ioctl(lower_file, cmd, arg); + else + err = -ENOTTY; break; } -- 1.5.2.2 - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html