From: Andi Kleen cifs_ioctl doesn't seem to need the BKL for anything, so convert it over to use unlocked_ioctl. Signed-off-by: Andi Kleen Cc: Steven French Signed-off-by: Andrew Morton --- fs/cifs/cifsfs.c | 10 +++++----- fs/cifs/cifsfs.h | 4 ++-- fs/cifs/ioctl.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff -puN fs/cifs/cifsfs.c~bkl-removal-convert-cifs-over-to-unlocked_ioctl fs/cifs/cifsfs.c --- a/fs/cifs/cifsfs.c~bkl-removal-convert-cifs-over-to-unlocked_ioctl +++ a/fs/cifs/cifsfs.c @@ -662,7 +662,7 @@ const struct file_operations cifs_file_o .splice_read = generic_file_splice_read, .llseek = cifs_llseek, #ifdef CONFIG_CIFS_POSIX - .ioctl = cifs_ioctl, + .unlocked_ioctl = cifs_ioctl, #endif /* CONFIG_CIFS_POSIX */ #ifdef CONFIG_CIFS_EXPERIMENTAL @@ -682,7 +682,7 @@ const struct file_operations cifs_file_d .flush = cifs_flush, .splice_read = generic_file_splice_read, #ifdef CONFIG_CIFS_POSIX - .ioctl = cifs_ioctl, + .unlocked_ioctl = cifs_ioctl, #endif /* CONFIG_CIFS_POSIX */ .llseek = cifs_llseek, #ifdef CONFIG_CIFS_EXPERIMENTAL @@ -702,7 +702,7 @@ const struct file_operations cifs_file_n .splice_read = generic_file_splice_read, .llseek = cifs_llseek, #ifdef CONFIG_CIFS_POSIX - .ioctl = cifs_ioctl, + .unlocked_ioctl = cifs_ioctl, #endif /* CONFIG_CIFS_POSIX */ #ifdef CONFIG_CIFS_EXPERIMENTAL @@ -721,7 +721,7 @@ const struct file_operations cifs_file_d .flush = cifs_flush, .splice_read = generic_file_splice_read, #ifdef CONFIG_CIFS_POSIX - .ioctl = cifs_ioctl, + .unlocked_ioctl = cifs_ioctl, #endif /* CONFIG_CIFS_POSIX */ .llseek = cifs_llseek, #ifdef CONFIG_CIFS_EXPERIMENTAL @@ -736,7 +736,7 @@ const struct file_operations cifs_dir_op #ifdef CONFIG_CIFS_EXPERIMENTAL .dir_notify = cifs_dir_notify, #endif /* CONFIG_CIFS_EXPERIMENTAL */ - .ioctl = cifs_ioctl, + .unlocked_ioctl = cifs_ioctl, }; static void diff -puN fs/cifs/cifsfs.h~bkl-removal-convert-cifs-over-to-unlocked_ioctl fs/cifs/cifsfs.h --- a/fs/cifs/cifsfs.h~bkl-removal-convert-cifs-over-to-unlocked_ioctl +++ a/fs/cifs/cifsfs.h @@ -105,8 +105,8 @@ extern int cifs_setxattr(struct dentry size_t, int); extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t); extern ssize_t cifs_listxattr(struct dentry *, char *, size_t); -extern int cifs_ioctl(struct inode *inode, struct file *filep, - unsigned int command, unsigned long arg); +extern long cifs_ioctl(struct file *filep, unsigned int command, + unsigned long arg); #ifdef CONFIG_CIFS_EXPERIMENTAL extern const struct export_operations cifs_export_ops; diff -puN fs/cifs/ioctl.c~bkl-removal-convert-cifs-over-to-unlocked_ioctl fs/cifs/ioctl.c --- a/fs/cifs/ioctl.c~bkl-removal-convert-cifs-over-to-unlocked_ioctl +++ a/fs/cifs/ioctl.c @@ -30,9 +30,9 @@ #define CIFS_IOC_CHECKUMOUNT _IO(0xCF, 2) -int cifs_ioctl(struct inode *inode, struct file *filep, - unsigned int command, unsigned long arg) +long cifs_ioctl(struct file *filep, unsigned int command, unsigned long arg) { + struct inode *inode = filep->f_dentry->d_inode; int rc = -ENOTTY; /* strange error - but the precedent */ int xid; struct cifs_sb_info *cifs_sb; _