>> Why keep something around that is not really wanted?
Because it might protect datas from concurrent accesses.
>> That only invites developers to periodically introduce new dependencies. >> You will eliminate in one release only to have to put it back in later
Not really. Most of the time, a new driver that uses the bkl will be spotted
and won't be merged, except may be for the llseek case, which is a bit particular.
>> It might be desirable to have an init option to enable or disable the BKL. It could make testing easier and faster.
The problem is not here. You don't catch every possible races by just testing without the bkl. When you kill the bkl at some places, you need to prove that what you are doing is safe, by explaining the locking involved and so. Testing is not sufficient.