Messages in this thread | | | Subject | Re: [RESEND] [PATCH] VFS: make file->f_pos access atomic on 32bit arch | From | Peter Zijlstra <> | Date | Wed, 08 Oct 2008 11:17:22 +0200 |
| |
On Wed, 2008-10-08 at 10:32 +0200, Eric Dumazet wrote:
> About dup() syscall, it wont help, since old and new descriptor points to > the same "struct file", definitly sharing file position, since first Unixes. > > To quote the fine manual : > > After successful return of dup or dup2, the old and new descriptors may > be used interchangeably. They share locks, file position pointers and > flags; for example, if the file position is modified by using lseek on > one of the descriptors, the position is also changed for the other.
Ah, ok. I'll try to remember for next time I write a multi-threaded user app (which given the size of my kernel todo list won't be any time soon I guess ;-)
> pread()/pwrite() are used my multi-threaded applications that want to share > a single "struct file".
Yeah, pread/pwrite is good.
> Or they must use some form of synchronization around > regular read()/write()/lseek() calls. > > There is no generic f_pos race, only buggy applications.
Agreed.
| |