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_base.h | |
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_base.h')
-rw-r--r-- | sql/sql_base.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sql/sql_base.h b/sql/sql_base.h index 05401a8cc6d..379aa67f203 100644 --- a/sql/sql_base.h +++ b/sql/sql_base.h @@ -226,16 +226,15 @@ TABLE *open_performance_schema_table(THD *thd, TABLE_LIST *one_table, Open_tables_state *backup); void close_performance_schema_table(THD *thd, Open_tables_state *backup); -bool close_cached_tables(THD *thd, TABLE_LIST *tables, bool have_lock, - bool wait_for_refresh); +bool close_cached_tables(THD *thd, TABLE_LIST *tables, bool wait_for_refresh); bool close_cached_connection_tables(THD *thd, bool wait_for_refresh, - LEX_STRING *connect_string, - bool have_lock = FALSE); + LEX_STRING *connect_string); void close_all_tables_for_name(THD *thd, TABLE_SHARE *share, bool remove_from_locked_tables); OPEN_TABLE_LIST *list_open_tables(THD *thd, const char *db, const char *wild); void tdc_remove_table(THD *thd, enum_tdc_remove_table_type remove_type, - const char *db, const char *table_name); + const char *db, const char *table_name, + bool has_lock); bool tdc_open_view(THD *thd, TABLE_LIST *table_list, const char *alias, char *cache_key, uint cache_key_length, MEM_ROOT *mem_root, uint flags); |