On my Fedora 20 system, closedir apparently frees the dirent, and reading it afterwards returns garbage data. This prevented my dance pad from being detected.