[Gluster-devel] How to fix wrong telldir/seekdir usage
Emmanuel Dreyfus
manu at netbsd.org
Sun Sep 14 07:39:02 UTC 2014
Pranith Kumar Karampuri <pkarampu at redhat.com> wrote:
> I believe posix xlator doesn't have this problem for
> non-anonymous fds where the DIR* stream is open till the final unref on
> the fd.
You must be right since reading a directory in a glusterfs volume does
not cause an infinite loop on NetBSD [1]. A quick inspection in the code
seems to suggest that we only have opendir/readdir/closedir in the same
function, and the opendir in posix_opendir.
snapview-server seems to suffer the same problem as index, though.
[1] reusing for seekdir() an offset obtained by telldir() on another DIR
* is unspecified. On Linux it seems to work (without any guarantee it is
reliable) NetBSD it is nilpotent, which cause readdir() to always
restart at the beginning of the directory.
--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org
More information about the Gluster-devel
mailing list