Messages in this thread Patch in this message | | | From | Arnd Bergmann <> | Subject | Re: [GIT PULL v2] Preparation for BKL'ed ioctl removal | Date | Mon, 26 Apr 2010 21:12:39 +0200 |
| |
On Monday 26 April 2010 20:08:39 Linus Torvalds wrote: > I wouldn't mind that. But we've not found people to do it so far, so...
I'll have another go at this tonight, see how far I get doing it the simplest way for each file.
> NOTE! This has gone through a "allmodconfig" (with staging drivers), but > only on x86-64. There are quite probably missing architecture conversions > and/or drivers. But this should be the bulk of them.
Yes, looks good. I've compared it to a previous series of mine that changed all the files in a different way. A number of those changes have found their way into your tree by now, and there were only two left that you didn't catch (see below), and one false positive where I patched a struct v4l2_file_operations.
> It doesn't look that bad. Just about 100 files affected.
The v4l2_file_operations is actually another can of worms, I count 77 more files with a locked ioctl function in there. I'll put that on the list of things to do before the BKL is gone.
Arnd
--- Subject: Missing bits from ->ioctl to ->bkl_ioctl conversion
Feel free to fold this into your patch.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 3de2f32..4890683 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt @@ -722,7 +722,7 @@ struct file_operations { ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct poll_table_struct *); - int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); + int (*bkl_ioctl) (struct inode *, struct file *, unsigned int, unsigned long); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); diff --git a/sound/oss/au1550_ac97.c b/sound/oss/au1550_ac97.c index c1070e3..7295781 100644 --- a/sound/oss/au1550_ac97.c +++ b/sound/oss/au1550_ac97.c @@ -835,11 +835,11 @@ au1550_ioctl_mixdev(struct inode *inode, struct file *file, } static /*const */ struct file_operations au1550_mixer_fops = { - owner:THIS_MODULE, - llseek:au1550_llseek, - ioctl:au1550_ioctl_mixdev, - open:au1550_open_mixdev, - release:au1550_release_mixdev, + .owner = THIS_MODULE, + .llseek = au1550_llseek, + .bkl_ioctl = au1550_ioctl_mixdev, + .open = au1550_open_mixdev, + .release = au1550_release_mixdev, }; static int
| |