Messages in this thread | | | From | Nick Piggin <> | Subject | Re: [RESEND] [PATCH] VFS: make file->f_pos access atomic on 32bit arch | Date | Wed, 8 Oct 2008 16:10:26 +1100 |
| |
On Wednesday 08 October 2008 15:48, Hisashi Hifumi wrote: > At 11:35 08/10/08, Nick Piggin wrote: > >On Wednesday 08 October 2008 05:59, Peter Zijlstra wrote: > >> The whole point is that such usage is outside the specification and thus > >> we don't strictly need to fix this. > >> > >> So the question Nick is asking is, do we want to slow down the kernel > >> for a few broken user-space applications. Esp. since the race doesn't > >> affect anybody else except the broken users of the file descriptor. > > > >Right you are. That's the fundamental question. The actual details of > >the fix and how likely the race is don't really matter until we > >answer the first question (except to say that the "fix" is never going > >to be free). > > Simultaneous access by two or more writer can corrupt file content, > so this case needs some locks(flock or fcntl) to preserve synchronization > of file content. This is responsibility of user-space application.
Right.
> But file->f_pos race issue can occur even if multiple threads just read > simultaneously. I think this is not responsibility of user-space > application. To avoid this currently, an application needs some locks to > protect file offset even if it just read a file. So I think f_pos race > should be fixed.
What would they possibly hope to be reading, though? IOW. a read(2) still *writes* to the fpos which userspace is very much aware of, and in exactly the same way as write(2), so userspace should require the same obligations to protect it in both cases I think. If you say they must protect file content for writes, then it is valid to say that they must protect fd data as well (ie. file offset).
| |