about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/unix/sysv/linux/getdents.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 983d826c4a..c1d35fbbe6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-12-24  GOTO Masanori  <gotom@debian.or.jp>
+
+	* sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Fix condition
+	checking of return value ENOSYS from getdents64.
+
 2002-12-28  Andreas Schwab  <schwab@suse.de>
 
 	* sysdeps/unix/Makefile: Include $(common-objpfx)s-proto-cancel.d.
diff --git a/sysdeps/unix/sysv/linux/getdents.c b/sysdeps/unix/sysv/linux/getdents.c
index daef5a518c..2e6b485047 100644
--- a/sysdeps/unix/sysv/linux/getdents.c
+++ b/sysdeps/unix/sysv/linux/getdents.c
@@ -126,7 +126,7 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
       retval = INLINE_SYSCALL (getdents64, 3, fd, CHECK_N(kbuf, kbytes),
 			       kbytes);
 # ifndef __ASSUME_GETDENTS64_SYSCALL
-      if (retval != -1 || errno != EINVAL)
+      if (retval != -1 || (errno != EINVAL && errno != ENOSYS))
 # endif
 	{
 	  const size_t size_diff = (offsetof (struct kernel_dirent64, d_name)