All of lore.kernel.org
 help / color / mirror / Atom feed
From: moharaka@gmail.com (Karaoui mohamed lamine)
To: kernelnewbies@lists.kernelnewbies.org
Subject: thread concurrent file operation
Date: Tue, 29 Jan 2013 18:25:19 +0100	[thread overview]
Message-ID: <CAEEuMqfO1xTWAazu20-8_K8V9dv4de8xeFLWPDOCGjGRU0b63w@mail.gmail.com> (raw)
In-Reply-To: <20130129155602.GA991@aurora>

2013/1/29 Tobias Boege <tobias@gambas-buch.de>

> 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
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130129/141d7296/attachment.html 

  parent reply	other threads:[~2013-01-29 17:25 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-29 15:35 thread concurrent file operation Karaoui mohamed lamine
2013-01-29 15:56 ` Tobias Boege
2013-01-29 16:55   ` Valdis.Kletnieks at vt.edu
2013-01-29 17:25   ` Karaoui mohamed lamine [this message]
2013-01-29 21:38     ` Valdis.Kletnieks at vt.edu
2013-01-29 16:53 ` Valdis.Kletnieks at vt.edu
     [not found]   ` <CAEEuMqcZFKPnmhbqyzQQJ4DB+tLN=Pbd5fi2oq4qYOeKG6bU7A@mail.gmail.com>
     [not found]     ` <17948.1359482378@turing-police.cc.vt.edu>
     [not found]       ` <CAEEuMqfdTHrYcvFNV72qz9mrw+2b=ABno5tcr0fjY4EAaOkZ-w@mail.gmail.com>
     [not found]         ` <14179.1359507973@turing-police.cc.vt.edu>
     [not found]           ` <CAEEuMqfqgmQr6NA=Akbg9Z48RFNSa5r9bVW7AYH88OEdmJtTwg@mail.gmail.com>
2013-02-07  8:44             ` Karaoui mohamed lamine
2013-02-07 10:23               ` Peter Teoh
2013-02-07 13:49                 ` Karaoui mohamed lamine
2013-02-07 13:49                 ` Peter Teoh
2013-02-06 22:58 ` Jimmy Pan
2013-02-07  2:41 ` Peter Teoh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEEuMqfO1xTWAazu20-8_K8V9dv4de8xeFLWPDOCGjGRU0b63w@mail.gmail.com \
    --to=moharaka@gmail.com \
    --cc=kernelnewbies@lists.kernelnewbies.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.