[Gluster-devel] Invalid DIR * usage in quota xlator

J. Bruce Fields bfields at fieldses.org
Wed Oct 15 14:10:59 UTC 2014


On Wed, Oct 15, 2014 at 04:22:36AM +0200, Emmanuel Dreyfus wrote:
> J. Bruce Fields <bfields at fieldses.org> wrote:
> 
> > Is the result on non-Linux really to fail any readdir using an offset
> > not returned from the current open?
> 
> Yes, but thatnon-Linux behabvior is POSIX compliant. Linux just happens
> to do more than the standard here.

I doubt Linux is alone there.

> > I can't see how NFS READDIR will work on non-Linux platforms in that
> > case.
> 
> Differrent case: seekdir/telldir operate at libc level on data cached in
> userland. NFS READDIR operates on data in the kernel.

Yes, but gluster itself also supports NFS exports, and that commit
appears to break that functionality on those on non-Linux platforms
whose seekdir/telldir support cookies not from the current open.

I seem to recall you said you were enquiring about the NetBSD behavior
here--did you get any results?

This really sounds like a bug to me--as you say, the underlying readdir
has to support this for kernel NFS exports, and maybe there's some
reason that breaking this makes the libc readdir() implementation
better or simpler, but I'm not seeing it.

Is there a different interface that works?  (E.g., looking at the
userspace NFS server Ganesha, it appears to use getdirentries() on
FreeBSD.)

--b.


More information about the Gluster-devel mailing list