On Mon, 2008-01-28 at 05:38 +0100, Andi Kleen wrote: > On Monday 28 January 2008 05:13:09 Trond Myklebust wrote: > > > > On Mon, 2008-01-28 at 03:58 +0100, Andi Kleen wrote: > > > The problem is that it's not a race in who gets to do its thing first, > > > but a > > > parallel reader can actually see a corrupted value from the two > > > independent > > > words on 32bit (e.g. during a 4GB). And this could actually completely > > > corrupt > > > f_pos when it happens with two racing relative seeks or read/write()s > > > > > > I would consider that a bug. > > > > I disagree. The corruption occurs because this isn't a situation that is > > allowed by either POSIX or SUSv2/v3. Exactly what spec are you referring > > to here? > > No specific spec, just general quality of implementation. We normally don't > have > non thread safe system calls even if it was in theory allowed by some > specification.
We've had the existing implementation for quite some time. The arguments against changing it have been the same all along: if your application wants to share files between threads, the portability argument implies that you should either use pread/pwrite or use a mutex or some other form of synchronisation primitive in order to ensure that lseek()/read()/write() do not overlap. Cheers Trond -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/