Where does kernel store per task file position?

Pranay Kumar Srivastava Pranay.Shrivastava at hcl.com
Wed Jan 30 01:31:46 EST 2013

> -----Original Message-----
> From: Rajat Sharma [mailto:fs.rajat at gmail.com]
> Sent: Wednesday, January 30, 2013 11:16 AM
> To: Pranay Kumar Srivastava
> Cc: kernelnewbies at 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.Shrivastava at 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
> ----------------------------------------------------------------------------------------------
> ------------------------------------------------------
> 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 at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

More information about the Kernelnewbies mailing list