http://rhn.redhat.com/errata/RHBA-2013-0073.html (search getdents)
Man page says use readdir.
64bit RHEL5 running a 32bit version of nedit.
With the isilon, it has enormous single file shares using 64bit file id's that the default 32bit getdents call can't handle.
There is a workaround in the isilon to turn on 32bit file id's, but it would be much better if the program made the correct calls.
strace when fails:
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents(4, 0x866594c, 32768) = -1 EINVAL (Invalid argument)
close(4) = 0
After remounting the share with the 32bit id workaround enabled:
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents(4, /* 3 entries */, 32768) = 5132
getdents(4, /* 0 entries */, 32768) = 0
close(4) = 0
I recently stumbled upon the same issue, and fixed it by recompiling nedit as a 64bit executable.