From 20d0a09002688b3be490665b02293123abf0a8b7 Mon Sep 17 00:00:00 2001
From: "heikki@donna.mysql.fi" <>
Date: Fri, 20 Jul 2001 19:01:23 +0300
Subject: [PATCH] dict0dict.ic	Remove acquisition of the dictionary mutex:
 this may fix the hang observed by Peter Zaitsev os0file.c	Use O_SYNC
 instead of O_DSYNC because in Linux there may be a bug

---
 innobase/include/dict0dict.ic | 4 ----
 innobase/os/os0file.c         | 7 +++++--
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/innobase/include/dict0dict.ic b/innobase/include/dict0dict.ic
index 549a5763b44..9089ebe8edd 100644
--- a/innobase/include/dict0dict.ic
+++ b/innobase/include/dict0dict.ic
@@ -651,8 +651,6 @@ dict_table_get_index(
 	char*		name)	/* in: index name */
 {
 	dict_index_t*	index	= NULL;
-
-	mutex_enter(&(dict_sys->mutex));
 	
 	index = dict_table_get_first_index(table);
 
@@ -665,8 +663,6 @@ dict_table_get_index(
 		index = dict_table_get_next_index(index);
 	}	
 	
-	mutex_exit(&(dict_sys->mutex));
-
 	return(index);
 }
 
diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c
index 668d74d75b5..d3c6232031a 100644
--- a/innobase/os/os0file.c
+++ b/innobase/os/os0file.c
@@ -347,9 +347,12 @@ os_file_create(
 
 	UT_NOT_USED(purpose);
 
-#ifdef O_DSYNC
+	/* Currently use only O_SYNC because there may be a bug in
+	   Linux O_DSYNC! */
+
+#ifdef O_SYNC
 	if (srv_unix_file_flush_method == SRV_UNIX_O_DSYNC) {
-	        create_flag = create_flag | O_DSYNC;
+	        create_flag = create_flag | O_SYNC;
 	}
 #endif
 	if (create_mode == OS_FILE_CREATE) {
-- 
2.30.9