diff options
author | Konstantin Osipov <kostja@sun.com> | 2010-08-09 22:33:47 +0400 |
---|---|---|
committer | Konstantin Osipov <kostja@sun.com> | 2010-08-09 22:33:47 +0400 |
commit | f8bfa3287ded5212a28c6d4bbf2d4afee8e5c403 (patch) | |
tree | 220bf71a69ee638da7cfd2c542d73122422a8c2f /sql/sql_truncate.cc | |
parent | 9862f8c7561aa34acb71e8e34444fef7086718e5 (diff) | |
download | mariadb-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.cc | 4 |
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 |