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

J. Bruce Fields bfields at fieldses.org
Wed Oct 15 16:47:51 UTC 2014


On Tue, Oct 14, 2014 at 03:43:49PM -0400, bfields wrote:
> On Sun, Oct 12, 2014 at 10:09:01AM +0200, Emmanuel Dreyfus wrote:
> > When quota xlator is enabled, bricks get this:
> > 
> > [2014-10-12 07:56:03.090516] E [posix.c:4874:posix_fill_readdir]
> > 0-patchy-posix: seekdir(-1154801456) failed on dir=0xb99cb250: Invalid
> > argument (offset reused from another DIR * structure?)
> > 
> > This means something either seekdir on a DIR * that was not obtained by
> > opendir(), or that was closedir() and then opendir() again. Can someone
> > explain me what directory walks are introduced by quota, and where
> > opendir/readdir/closedir happen for that?
> 
> Apologies, I'm just catching up, but I'm confused by
> 
> 	c65d4ea8a10a "Fix invalid seekdir() usage"
> 
> Is the result on non-Linux really to fail any readdir using an offset
> not returned from the current open?

Whoops, thanks to Emmanuel for correcting me off-list: that patch
shouldn't introduce any changes in the case seekdir succeeds, so it
shouldn't make any difference in the case seekdir() is willing to accept
an offset.

(It'd still be better to figure out how to get stable directory cookies,
possibly using some other interface, but that's a preexisting problem
not introduced by c65d4ea8a10a).

--b.


More information about the Gluster-devel mailing list