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
| |