Messages in this thread | | | Date | Thu, 10 Apr 2008 16:14:06 +0100 | From | Jamie Lokier <> | Subject | Re: file offset corruption on 32-bit machines? |
| |
Martin Mares wrote: > > [*] file_pos_{read,write} (fs/read_write.c) are not called under > > lock (in sys_read, sys_write, ...), so even if f_pos is written > > atomically, you will be able to get races when accessing shared > > descriptor from different threads. > > There are however cases when such behavior is perfectly valid: For example > you can have a file of records of a fixed size, whose order does not matter. > Then multiple processes can produce the records in parallel, sharing > a single fd.
A rather more common thing:
Does this problem apply when appending lines or records to a log file, with or without O_APPEND?
Also, can this problem affect programs doing concurrent reads/writes using pread/pwrite (or the AIO equivalents)?
-- Jamie
| |