On Thursday 15 April 2010 00:48:19 Douglas Gilbert wrote:
Ok, I missed the nonseekable_open here and assumed someone
might be calling seek on it. I'll use no_llseek then, or
just leave it alone.
Ah, good point. So even if the st driver does not need
any locking against the block layer, it might need to
lock its ioctl against sg.
The most simple solution for this would be to let sg
take both blkdev_mutex and the BKL, which of course
feels like a step backwards.
A better way is to get rid of the BKL in sg, which requires
a better understanding of what it's actually protecting.
It only gets it in the open and ioctl functions, which is a
result of the pushdown from the respective file operations.
Chances are that it's not needed at all, but that's really
hard to tell. Can you shed some more light on this?
Arnd
--