Set the inode size to 256 to work around a newlib scandir check where a directory has to have a non-zero size to work. Set the size to greater than 24 bytes, a small dirent size so the allocator in scandir works.
The newlib scandir code should be updated to a more recent scandir from FreeBSD where these checks have been removed. This change is a work around to avoid new tools on the release branch. With this change scandir works on IMFS, RFS and JFFS2. Closes #3332 --- cpukit/libfs/src/jffs2/src/fs-rtems.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cpukit/libfs/src/jffs2/src/fs-rtems.c b/cpukit/libfs/src/jffs2/src/fs-rtems.c index ce84d44470..790929d856 100644 --- a/cpukit/libfs/src/jffs2/src/fs-rtems.c +++ b/cpukit/libfs/src/jffs2/src/fs-rtems.c @@ -1512,6 +1512,9 @@ static int jffs2_read_inode (struct _inode *inode) inode->i_mtime = je32_to_cpu(latest_node.mtime); inode->i_ctime = je32_to_cpu(latest_node.ctime); + if (S_ISDIR(inode->i_mode)) + inode->i_size = 256; + inode->i_nlink = f->inocache->pino_nlink; mutex_unlock(&f->sem); -- 2.14.1 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel