Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: [PATCH 6/6] procfs: Kill the bkl in ioctl | Date | Thu, 1 Apr 2010 14:45:32 +0200 |
| |
On Thursday 01 April 2010, Stefan Richter wrote: > > > > I wonder if we should actually just turn all these into unlocked_ioctl > > directly. And then bring a warn on ioctl, and finally schedule the removal > > of this callback. > > A side note: A considerable portion of this particular commit in Arnd's > git actually does not deal with .ioctl->.unlocked_ioctl at all, but > purely with .llseek. Many(?) of these changes deal with .ioctl and > .llseek together. (Arnd also says so in the last paragraph of his > changelog.) > > IOW there are less .ioctl implementations left than one could think from > a look at the diffstat.
Given our recent discussions on the llseek topic, it's probably better to revert most of the changes that purely deal with llseek. My current idea is to use an explicit default_llseek only if one of the following is given:
- we convert ioctl to unlocked_ioctl in the same file_operations, or - the module uses the big kernel lock explicitly elsewhere.
Even then, there may be a number of cases where we can show it not to be necessary, e.g. when the driver does not care about f_pos. Concurrent llseek is racy by nature, so in most drivers, using the BKL in llseek does not gain anything over using i_mutex.
Arnd
| |