Re: Where does kernel store per task file position?

2013-01-29 Thread Rajat Sharma
 I'm still not able to figure out where exactly is the position of file
stored per task_struct.
struct file * itself is per process (task_struct) so file-f_pos is file
position per process, if thats what you are looking for. I hope you haven't
assumed that struct file itself is unique for a file, i.e. per inode? Then
that assumption is wrong.

-Rajat


On Tue, Jan 29, 2013 at 6:38 PM, Pranay Kumar Srivastava 
pranay.shrivast...@hcl.com wrote:

 Hi Everyone,

 I was trying to find out where does Linux store per process file position?
 Since struct file is allocated once when the file is first opened
 (get_empty_filp() via do_sys_open) .I looked at these,

 Copy_process---copy_files--dup_fd  it seemed to allocate only (struct
 file*)

 struct files_struct , but I couldn't find any field that is actually being
 used to store the file position.


 I'm still not able to figure out where exactly is the position of file
 stored per task_struct. Secondly even if this was being saved does the
 kernel changes f_pos of struct file whenever a (read/write) is done? I
 don't that happens [Correct?].

 Regards,
 Pranay Kumar Srivastava


 ::DISCLAIMER::

 

 The contents of this e-mail and any attachment(s) are confidential and
 intended for the named recipient(s) only.
 E-mail transmission is not guaranteed to be secure or error-free as
 information could be intercepted, corrupted,
 lost, destroyed, arrive late or incomplete, or may contain viruses in
 transmission. The e mail and its contents
 (with or without referred errors) shall therefore not attach any liability
 on the originator or HCL or its affiliates.
 Views or opinions, if any, presented in this email are solely those of the
 author and may not necessarily reflect the
 views or opinions of HCL or its affiliates. Any form of reproduction,
 dissemination, copying, disclosure, modification,
 distribution and / or publication of this message without the prior
 written consent of authorized representative of
 HCL is strictly prohibited. If you have received this email in error
 please delete it and notify the sender immediately.
 Before opening any email and/or attachments, please check them for viruses
 and other defects.


 


 ___
 Kernelnewbies mailing list
 Kernelnewbies@kernelnewbies.org
 http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


RE: Where does kernel store per task file position?

2013-01-29 Thread Pranay Kumar Srivastava


 -Original Message-
 From: Rajat Sharma [mailto:fs.ra...@gmail.com]
 Sent: Wednesday, January 30, 2013 11:16 AM
 To: Pranay Kumar Srivastava
 Cc: kernelnewbies@kernelnewbies.org
 Subject: Re: Where does kernel store per task file position?
 
  I'm still not able to figure out where exactly is the position of file 
  stored per
 task_struct.
 struct file * itself is per process (task_struct) so file-f_pos is file 
 position per
 process, if thats what you are looking for. I hope you haven't assumed that
 struct file itself is unique for a file, i.e. per inode? Then that assumption 
 is
 wrong.
 -Rajat

[Pranay Kumar Srivastava] That really was a stupid question, it says right 
there get_empty_filp() in do_sys_open. For forks the inherited file have common 
struct file [Correct?] but for the files opened after fork in child/parent will 
not have shared struct file[Correct?].  So the same dentry can be pointed to by 
multiple struct file[Correct?] that's why there's an increment of dentry while 
doing lookup[Correct?].

Thanks a lot!
 
 On Tue, Jan 29, 2013 at 6:38 PM, Pranay Kumar Srivastava
 pranay.shrivast...@hcl.com wrote:
 Hi Everyone,
 
 I was trying to find out where does Linux store per process file position?
 Since struct file is allocated once when the file is first opened
 (get_empty_filp() via do_sys_open) .I looked at these,
 
 Copy_process---copy_files--dup_fd  it seemed to allocate only (struct
 file*)
 
 struct files_struct , but I couldn't find any field that is actually being 
 used to
 store the file position.
 
 
 I'm still not able to figure out where exactly is the position of file stored 
 per
 task_struct. Secondly even if this was being saved does the kernel changes
 f_pos of struct file whenever a (read/write) is done? I don't that happens
 [Correct?].
 
 Regards,
 Pranay Kumar Srivastava
 
 
 ::DISCLAIMER::
 --
 --
 
 The contents of this e-mail and any attachment(s) are confidential and
 intended for the named recipient(s) only.
 E-mail transmission is not guaranteed to be secure or error-free as
 information could be intercepted, corrupted, lost, destroyed, arrive late or
 incomplete, or may contain viruses in transmission. The e mail and its
 contents (with or without referred errors) shall therefore not attach any
 liability on the originator or HCL or its affiliates.
 Views or opinions, if any, presented in this email are solely those of the
 author and may not necessarily reflect the views or opinions of HCL or its
 affiliates. Any form of reproduction, dissemination, copying, disclosure,
 modification, distribution and / or publication of this message without the
 prior written consent of authorized representative of HCL is strictly
 prohibited. If you have received this email in error please delete it and 
 notify
 the sender immediately.
 Before opening any email and/or attachments, please check them for viruses
 and other defects.
 
 --
 --
 
 
 ___
 Kernelnewbies mailing list
 Kernelnewbies@kernelnewbies.org
 http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Where does kernel store per task file position?

2013-01-29 Thread Rajat Sharma
Correct :)


On Wed, Jan 30, 2013 at 12:01 PM, Pranay Kumar Srivastava 
pranay.shrivast...@hcl.com wrote:



  -Original Message-
  From: Rajat Sharma [mailto:fs.ra...@gmail.com]
  Sent: Wednesday, January 30, 2013 11:16 AM
  To: Pranay Kumar Srivastava
  Cc: kernelnewbies@kernelnewbies.org
  Subject: Re: Where does kernel store per task file position?
 
   I'm still not able to figure out where exactly is the position of file
 stored per
  task_struct.
  struct file * itself is per process (task_struct) so file-f_pos is file
 position per
  process, if thats what you are looking for. I hope you haven't assumed
 that
  struct file itself is unique for a file, i.e. per inode? Then that
 assumption is
  wrong.
  -Rajat

 [Pranay Kumar Srivastava] That really was a stupid question, it says right
 there get_empty_filp() in do_sys_open. For forks the inherited file have
 common struct file [Correct?] but for the files opened after fork in
 child/parent will not have shared struct file[Correct?].  So the same
 dentry can be pointed to by multiple struct file[Correct?] that's why
 there's an increment of dentry while doing lookup[Correct?].

 Thanks a lot!
 
  On Tue, Jan 29, 2013 at 6:38 PM, Pranay Kumar Srivastava
  pranay.shrivast...@hcl.com wrote:
  Hi Everyone,
 
  I was trying to find out where does Linux store per process file
 position?
  Since struct file is allocated once when the file is first opened
  (get_empty_filp() via do_sys_open) .I looked at these,
 
  Copy_process---copy_files--dup_fd  it seemed to allocate only (struct
  file*)
 
  struct files_struct , but I couldn't find any field that is actually
 being used to
  store the file position.
 
 
  I'm still not able to figure out where exactly is the position of file
 stored per
  task_struct. Secondly even if this was being saved does the kernel
 changes
  f_pos of struct file whenever a (read/write) is done? I don't that
 happens
  [Correct?].
 
  Regards,
  Pranay Kumar Srivastava
 
 
  ::DISCLAIMER::
 
 --
  --
 
  The contents of this e-mail and any attachment(s) are confidential and
  intended for the named recipient(s) only.
  E-mail transmission is not guaranteed to be secure or error-free as
  information could be intercepted, corrupted, lost, destroyed, arrive
 late or
  incomplete, or may contain viruses in transmission. The e mail and its
  contents (with or without referred errors) shall therefore not attach any
  liability on the originator or HCL or its affiliates.
  Views or opinions, if any, presented in this email are solely those of
 the
  author and may not necessarily reflect the views or opinions of HCL or
 its
  affiliates. Any form of reproduction, dissemination, copying, disclosure,
  modification, distribution and / or publication of this message without
 the
  prior written consent of authorized representative of HCL is strictly
  prohibited. If you have received this email in error please delete it
 and notify
  the sender immediately.
  Before opening any email and/or attachments, please check them for
 viruses
  and other defects.
 
 
 --
  --
 
 
  ___
  Kernelnewbies mailing list
  Kernelnewbies@kernelnewbies.org
  http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies