Hi all, I'm reading the code of 3.6.9 version and got a question.And I'm not very familiar with the code,so I have to confirm it(I checked the master branch,it's same with 3.6.9). The question is about the 'lookup' operation of NFS.And i'm with this code flow: nfs3_lookup (nfs3.c) ==> nfs3_fh_resolve_and_resume ==> nfs3_fh_resolve_root ==> nfs3_fh_resolve_resume ==> nfs3_fh_resolve_entry ==> nfs3_fh_resolve_entry_hard. Now enter the "nfs_entry_loc_fill" and return with -1 which means the "parent" not found,so we have to do hard resolve about the parent. After doing a hard resolve,we get into the callback "nfs3_fh_resolve_inode_lookup_cbk".And the callback has the following code:>>> memcpy (&cs->stbuf, buf, sizeof(*buf)); >>> memcpy (&cs->postparent, buf, sizeof(*postparent))I think we've just done a parent resolve,how could we assign the parent result into the "stbuf" and "postparent".The later two should be the information of the child file/directory.Do i made a misunderstand? Thanks advance for your help. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.gluster.org/pipermail/gluster-users/attachments/20161116/087ee11a/attachment.html>
Pranith Kumar Karampuri
2016-Nov-16 13:08 UTC
[Gluster-users] question about nfs lookup result
Added people who know nfs code. On Wed, Nov 16, 2016 at 6:21 PM, jin deng <cheneydeng88 at gmail.com> wrote:> Hi all, > I'm reading the code of 3.6.9 version and got a question.And I'm not > very familiar with the code,so I have to confirm it(I checked the master > branch,it's same with 3.6.9). > > The question is about the 'lookup' operation of NFS.And i'm with this > code flow: > > nfs3_lookup (nfs3.c) ==> nfs3_fh_resolve_and_resume > ==> nfs3_fh_resolve_root ==> nfs3_fh_resolve_resume > ==> nfs3_fh_resolve_entry ==> nfs3_fh_resolve_entry_hard. > > Now enter the "nfs_entry_loc_fill" and return with -1 which means the > "parent" not found,so we have to do hard resolve about the parent. After > doing a hard resolve,we get into the callback "nfs3_fh_resolve_inode_lookup_cbk".And > the callback has the following code: > > >>> memcpy (&cs->stbuf, buf, sizeof(*buf)); > >>> memcpy (&cs->postparent, buf, sizeof(*postparent)) > > I think we've just done a parent resolve,how could we assign the parent > result into the "stbuf" and "postparent".The later two should be the > information of the child file/directory.Do i made a misunderstand? > > Thanks advance for your help. > > _______________________________________________ > Gluster-users mailing list > Gluster-users at gluster.org > http://www.gluster.org/mailman/listinfo/gluster-users >-- Pranith -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.gluster.org/pipermail/gluster-users/attachments/20161116/af0ebb0d/attachment.html>