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 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?
-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?
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