#At file:///home/svoj/devel/innodb-snapshots/mysql-5.1-bugteam/ based on revid:svoj@stripped
3364 Sergey Vojtovich 2010-02-26
Applying InnoDB snapshot, fixes BUG#50691
Detailed revision comments:
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
modified:
storage/innobase/os/os0file.c
=== modified file 'storage/innobase/os/os0file.c'
--- a/storage/innobase/os/os0file.c 2009-11-30 08:40:31 +0000
+++ b/storage/innobase/os/os0file.c 2010-02-26 09:04:24 +0000
@@ -759,7 +759,15 @@ 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);
Attachment: [text/bzr-bundle] bzr/svoj@sun.com-20100226090424-chjo1i6hwbhjnmaf.bundle
Thread |
---|
• bzr commit into mysql-5.1-bugteam branch (svoj:3364) Bug#50691 | Sergey Vojtovich | 26 Feb |