Re: When is export_operations.get_parent triggered?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 06, 2016 at 12:24:20PM +0000, Luis de Bethencourt wrote:
> On 05/11/16 22:03, NeilBrown wrote:
> > On Sat, Nov 05 2016, Luis de Bethencourt wrote:
> > 
> >> Hi all,
> >>
> >> I recently played with adding the basics to make befs exportable via NFS [0].
> >>
> >> I want to implement the get_parent member of the export_operations struct as
> >> well, but I can't seem to trigger this member being called. I have implemented
> >> a solution which I feel is wrong [1], but want to be able to test it before
> >> moving forward.
> >>
> >> When is this member triggered? Any advice?
> > 
> > This is required when a filehandle for a directory arrives, but the
> > directory is not in the dcache.
> > NFSD needs to find dentries for the directory, the parent, the
> > grandparent etc all the way up to the root.
> > 
> > The simplest way to trigger this is to mount the filesystem onto a
> > different machine, 'cd' into a fairly deep directory, then reboot the
> > server (or unexport, unmount, remount, re-export).
> > Now 'ls -l' on the client.  That should trigger calls to ->get_parent.
> > 
> > ->get_parent() is a log like performing a lookup of "..".
> > 
> > NeilBrown
> > 
> 
> Nice!
> 
> This makes a lot of sense. I just rebooted the server and saw the get_parent
> being called. Before I was mistakenly trying without a reboot, but thanks to your
> explanation now understand this better, the directory was still in the dcache and
> it was using this instead.

I've also tested get_parent with "echo 2>/proc/sys/vm/drop_caches",
after first creating a 2000-deep subdirectory heirarchy (to stress
performance, and to make sure dcache had enough entries that drop_caches
would reliably drop what I wanted).  And I used the filehandle syscalls
directly, to take nfsd out of the equation.  See deep-fh-lookup in
git://linux-nfs.org/~bfields/fragments.git for my kludgey script.  OK,
rebooting may be easier.

--b.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux