Commit 0c064c3f authored by marko's avatar marko

branches/zip: Merge revisions 6613:6669 from branches/5.1:

  ------------------------------------------------------------------------
  r6669 | jyang | 2010-02-11 12:24:19 +0200 (Thu, 11 Feb 2010) | 7 lines

  branches/5.1: Fix bug #50691, AIX implementation of readdir_r
  causes InnoDB errors. readdir_r() returns an non-NULL value
  in the case of reaching the end of a directory. It should
  not be treated as an error return.

  rb://238 approved by Marko
  ------------------------------------------------------------------------
parent d8840f93
......@@ -789,7 +789,15 @@ os_file_readdir_next_file(
#ifdef HAVE_READDIR_R
ret = readdir_r(dir, (struct dirent*)dirent_buf, &ent);
if (ret != 0) {
if (ret != 0
#ifdef UNIV_AIX
/* On AIX, only if we got non-NULL 'ent' (result) value and
a non-zero 'ret' (return) value, it indicates a failed
readdir_r() call. An NULL 'ent' with an non-zero 'ret'
would indicate the "end of the directory" is reached. */
&& ent != NULL
#endif
) {
fprintf(stderr,
"InnoDB: cannot read directory %s, error %lu\n",
dirname, (ulong)ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment