How to know the path for a corresponding inode number











up vote
1
down vote

favorite












If i know the inode reference i.e.



struct inode *inode;


and struct dentry structure will be containing path information for a particular dentry in d_iname variable.



How can I map from &inode->i_dentry to know the path of corresponding inode? also How to map from struct inode to struct dentry?










share|improve this question


























    up vote
    1
    down vote

    favorite












    If i know the inode reference i.e.



    struct inode *inode;


    and struct dentry structure will be containing path information for a particular dentry in d_iname variable.



    How can I map from &inode->i_dentry to know the path of corresponding inode? also How to map from struct inode to struct dentry?










    share|improve this question
























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      If i know the inode reference i.e.



      struct inode *inode;


      and struct dentry structure will be containing path information for a particular dentry in d_iname variable.



      How can I map from &inode->i_dentry to know the path of corresponding inode? also How to map from struct inode to struct dentry?










      share|improve this question













      If i know the inode reference i.e.



      struct inode *inode;


      and struct dentry structure will be containing path information for a particular dentry in d_iname variable.



      How can I map from &inode->i_dentry to know the path of corresponding inode? also How to map from struct inode to struct dentry?







      linux kernel






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Oct 14 '15 at 8:25









      LinuxLerner

      163




      163






















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          1
          down vote













          In the general case, you can't. There isn't a one-to-one correspondence between inodes and directory entries:



          $ touch file1.txt
          $ ln file1.txt file2.txt
          $ ls -li file*.txt
          1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file1.txt
          1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file2.txt


          Which path is the "real" one for inode 1332145968?



          $ rm file2.txt 
          $ tail -f file1.txt &
          [1] 7781
          $ rm file1.txt


          What about now? Inode 1332145968 is still in use, as you can see using lsof, but it has no path.






          share|improve this answer




























            up vote
            0
            down vote













            Path you can trace using d_parent field from d_entry and saving the names. This will take you till the root of the file system. But be careful in case the inode object belongs to mounted file system, in such case the trace back will stop at mount point.






            share|improve this answer





















              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "106"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f236024%2fhow-to-know-the-path-for-a-corresponding-inode-number%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes








              up vote
              1
              down vote













              In the general case, you can't. There isn't a one-to-one correspondence between inodes and directory entries:



              $ touch file1.txt
              $ ln file1.txt file2.txt
              $ ls -li file*.txt
              1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file1.txt
              1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file2.txt


              Which path is the "real" one for inode 1332145968?



              $ rm file2.txt 
              $ tail -f file1.txt &
              [1] 7781
              $ rm file1.txt


              What about now? Inode 1332145968 is still in use, as you can see using lsof, but it has no path.






              share|improve this answer

























                up vote
                1
                down vote













                In the general case, you can't. There isn't a one-to-one correspondence between inodes and directory entries:



                $ touch file1.txt
                $ ln file1.txt file2.txt
                $ ls -li file*.txt
                1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file1.txt
                1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file2.txt


                Which path is the "real" one for inode 1332145968?



                $ rm file2.txt 
                $ tail -f file1.txt &
                [1] 7781
                $ rm file1.txt


                What about now? Inode 1332145968 is still in use, as you can see using lsof, but it has no path.






                share|improve this answer























                  up vote
                  1
                  down vote










                  up vote
                  1
                  down vote









                  In the general case, you can't. There isn't a one-to-one correspondence between inodes and directory entries:



                  $ touch file1.txt
                  $ ln file1.txt file2.txt
                  $ ls -li file*.txt
                  1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file1.txt
                  1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file2.txt


                  Which path is the "real" one for inode 1332145968?



                  $ rm file2.txt 
                  $ tail -f file1.txt &
                  [1] 7781
                  $ rm file1.txt


                  What about now? Inode 1332145968 is still in use, as you can see using lsof, but it has no path.






                  share|improve this answer












                  In the general case, you can't. There isn't a one-to-one correspondence between inodes and directory entries:



                  $ touch file1.txt
                  $ ln file1.txt file2.txt
                  $ ls -li file*.txt
                  1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file1.txt
                  1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file2.txt


                  Which path is the "real" one for inode 1332145968?



                  $ rm file2.txt 
                  $ tail -f file1.txt &
                  [1] 7781
                  $ rm file1.txt


                  What about now? Inode 1332145968 is still in use, as you can see using lsof, but it has no path.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Oct 18 '15 at 0:13









                  Mark

                  1,98911327




                  1,98911327
























                      up vote
                      0
                      down vote













                      Path you can trace using d_parent field from d_entry and saving the names. This will take you till the root of the file system. But be careful in case the inode object belongs to mounted file system, in such case the trace back will stop at mount point.






                      share|improve this answer

























                        up vote
                        0
                        down vote













                        Path you can trace using d_parent field from d_entry and saving the names. This will take you till the root of the file system. But be careful in case the inode object belongs to mounted file system, in such case the trace back will stop at mount point.






                        share|improve this answer























                          up vote
                          0
                          down vote










                          up vote
                          0
                          down vote









                          Path you can trace using d_parent field from d_entry and saving the names. This will take you till the root of the file system. But be careful in case the inode object belongs to mounted file system, in such case the trace back will stop at mount point.






                          share|improve this answer












                          Path you can trace using d_parent field from d_entry and saving the names. This will take you till the root of the file system. But be careful in case the inode object belongs to mounted file system, in such case the trace back will stop at mount point.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Oct 17 '15 at 21:08









                          Vishal Sahu

                          787




                          787






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Unix & Linux Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.





                              Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                              Please pay close attention to the following guidance:


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f236024%2fhow-to-know-the-path-for-a-corresponding-inode-number%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Morgemoulin

                              Scott Moir

                              Souastre