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 @@ -665,7 +665,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 @@ -685,7 +685,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 @@ -705,7 +705,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 @@ -724,7 +724,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 @@ -739,7 +739,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 @@ -104,8 +104,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; _