thread concurrent file operation
Tobias Boege
tobias at gambas-buch.de
Tue Jan 29 10:56:02 EST 2013
On Tue, 29 Jan 2013, Karaoui mohamed lamine wrote:
> Hello,
>
> I was looking at how a syscall read/write was done, and i found this :
>
> ....
> loff_t pos = file_pos_read(f.file);
> ret = vfs_read(f.file, buf, count, &pos);
> file_pos_write(f.file, pos);
> fdput(f);
> ...
>
> My questions are :
>
> Where did the locking go? I would have imaginated something like :
>
> ....
> *lock(f);*
> loff_t pos = file_pos_read(f.file);
> ret = vfs_read(f.file, buf, count, &pos);
> file_pos_write(f.file, pos);
> fdput(f);
> *unlock(f);*
> ...
>
> If multiple threads try to read/write at the same time, they could
> read/write at the same offset ?
>
Look some lines above:
struct fd f = fdget(fd);
Regards,
Tobi
More information about the Kernelnewbies
mailing list