summaryrefslogtreecommitdiff
path: root/sql/sql_truncate.cc
diff options
context:
space:
mode:
authorKonstantin Osipov <kostja@sun.com>2010-08-09 22:33:47 +0400
committerKonstantin Osipov <kostja@sun.com>2010-08-09 22:33:47 +0400
commitf8bfa3287ded5212a28c6d4bbf2d4afee8e5c403 (patch)
tree220bf71a69ee638da7cfd2c542d73122422a8c2f /sql/sql_truncate.cc
parent9862f8c7561aa34acb71e8e34444fef7086718e5 (diff)
downloadmariadb-git-f8bfa3287ded5212a28c6d4bbf2d4afee8e5c403.tar.gz
A fix for Bug#41158 "DROP TABLE holds LOCK_open during unlink()".
Remove acquisition of LOCK_open around file system operations, since such operations are now protected by metadata locks. Rework table discovery algorithm to not require LOCK_open. No new tests added since all MDL locking operations are covered in lock.test and mdl_sync.test, and as long as these tests pass despite the increased concurrency, consistency must be unaffected.
Diffstat (limited to 'sql/sql_truncate.cc')
-rw-r--r--sql/sql_truncate.cc4
1 files changed, 1 insertions, 3 deletions
diff --git a/sql/sql_truncate.cc b/sql/sql_truncate.cc
index ee5c707cd69..38e32082388 100644
--- a/sql/sql_truncate.cc
+++ b/sql/sql_truncate.cc
@@ -310,10 +310,8 @@ static bool open_and_lock_table_for_truncate(THD *thd, TABLE_LIST *table_ref,
upgrade_shared_lock_to_exclusive(table_ref->mdl_request.ticket,
timeout))
DBUG_RETURN(TRUE);
- mysql_mutex_lock(&LOCK_open);
tdc_remove_table(thd, TDC_RT_REMOVE_ALL, table_ref->db,
- table_ref->table_name);
- mysql_mutex_unlock(&LOCK_open);
+ table_ref->table_name, FALSE);
}
}
else