Messages in this thread |  | | | From | Andi Kleen <> | | Subject | Re: [PATCH] [8/18] BKL-removal: Remove BKL from remote_llseek | | Date | Mon, 28 Jan 2008 09:17:52 +0100 | |
> I completely agree. If one thread writes A and another writes B then the
> kernel should record either A or B, not ((A & 0xffffffff00000000) | (B &
> 0xffffffff))
The problem is pretty nasty unfortunately. To solve it properly I think
the file_operations->read/write prototypes would need to be changed
because otherwise it is not possible to do atomic relative updates
of f_pos. Right now the actual update is burrowed deeply in the low level
read/write implementation. But that would be a huge impact all over
the tree :/
Or maybe define a new read/write64 and keep the default as 32bit only-- i
suppose most users don't really need 64bit. Still would be a nasty API
change.
-Andi
|  |