Commit eb0ab9d7 authored by marko's avatar marko

Merge r112 from branches/5.0:

os_file_handle_error(): Map the error codes EXDEV, ENOTDIR, and EISDIR
to the new code OS_FILE_PATH_ERROR.  Treat this code as OS_FILE_PATH_ERROR.
This fixes the crash on RENAME TABLE when the .ibd file is a symbolic link
to a different file system.  (Bug #15991)
parent 7572f8fc
...@@ -91,9 +91,10 @@ log. */ ...@@ -91,9 +91,10 @@ log. */
#define OS_FILE_NOT_FOUND 71 #define OS_FILE_NOT_FOUND 71
#define OS_FILE_DISK_FULL 72 #define OS_FILE_DISK_FULL 72
#define OS_FILE_ALREADY_EXISTS 73 #define OS_FILE_ALREADY_EXISTS 73
#define OS_FILE_AIO_RESOURCES_RESERVED 74 /* wait for OS aio resources #define OS_FILE_PATH_ERROR 74
#define OS_FILE_AIO_RESOURCES_RESERVED 75 /* wait for OS aio resources
to become available again */ to become available again */
#define OS_FILE_ERROR_NOT_SPECIFIED 75 #define OS_FILE_ERROR_NOT_SPECIFIED 76
/* Types for aio operations */ /* Types for aio operations */
#define OS_FILE_READ 10 #define OS_FILE_READ 10
......
...@@ -311,6 +311,8 @@ os_file_get_last_error( ...@@ -311,6 +311,8 @@ os_file_get_last_error(
return(OS_FILE_NOT_FOUND); return(OS_FILE_NOT_FOUND);
} else if (err == EEXIST) { } else if (err == EEXIST) {
return(OS_FILE_ALREADY_EXISTS); return(OS_FILE_ALREADY_EXISTS);
} else if (err == EXDEV || err == ENOTDIR || err == EISDIR) {
return(OS_FILE_PATH_ERROR);
} else { } else {
return(100 + err); return(100 + err);
} }
...@@ -360,7 +362,8 @@ os_file_handle_error( ...@@ -360,7 +362,8 @@ os_file_handle_error(
return(TRUE); return(TRUE);
} else if (err == OS_FILE_ALREADY_EXISTS) { } else if (err == OS_FILE_ALREADY_EXISTS
|| err == OS_FILE_PATH_ERROR) {
return(FALSE); return(FALSE);
} else { } else {
...@@ -464,7 +467,8 @@ os_file_handle_error_no_exit( ...@@ -464,7 +467,8 @@ os_file_handle_error_no_exit(
return(TRUE); return(TRUE);
} else if (err == OS_FILE_ALREADY_EXISTS) { } else if (err == OS_FILE_ALREADY_EXISTS
|| err == OS_FILE_PATH_ERROR) {
return(FALSE); return(FALSE);
} else { } else {
......
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