2013/1/29 Tobias Boege <[email protected]> > 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); >
This function is supposed to return the file reference, does do the locking ? It seems that i can't find the lock instruction( with all those rcu instructions, i am little lost), can you guide me throught ? > > Regards, > Tobi > > > _______________________________________________ > Kernelnewbies mailing list > [email protected] > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
