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>