summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-02-15 19:28:58 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2022-02-15 19:28:58 +0200
commita9e00a014d52587299ee473a3939c7ba0a26873e (patch)
tree388873f33476ea978a424a1eab3ede706ec80b35
parentf8b3c661231f98ce7a84480e49d7175a2bfc25a8 (diff)
parent8251a9fb93075a72074bd7fd10faee5165014b7f (diff)
downloadmariadb-git-a9e00a014d52587299ee473a3939c7ba0a26873e.tar.gz
Merge 10.8 into 10.9
-rw-r--r--extra/mariabackup/xtrabackup.cc15
-rw-r--r--storage/innobase/handler/ha_innodb.cc1
-rw-r--r--storage/innobase/include/log0log.h6
-rw-r--r--storage/innobase/include/os0file.h1
-rw-r--r--storage/innobase/log/log0log.cc2
-rw-r--r--storage/innobase/log/log0recv.cc12
-rw-r--r--storage/innobase/os/os0file.cc1
-rw-r--r--storage/innobase/srv/srv0start.cc31
8 files changed, 33 insertions, 36 deletions
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc
index 673ff3999cd..851c83c76db 100644
--- a/extra/mariabackup/xtrabackup.cc
+++ b/extra/mariabackup/xtrabackup.cc
@@ -2274,10 +2274,10 @@ static bool innodb_init()
bool ret;
const std::string ib_logfile0{get_log_file_path()};
- os_file_delete_if_exists(innodb_log_file_key, ib_logfile0.c_str(), nullptr);
- pfs_os_file_t file= os_file_create(innodb_log_file_key, ib_logfile0.c_str(),
- OS_FILE_CREATE, OS_FILE_NORMAL,
- OS_DATA_FILE_NO_O_DIRECT, false, &ret);
+ os_file_delete_if_exists_func(ib_logfile0.c_str(), nullptr);
+ os_file_t file= os_file_create_func(ib_logfile0.c_str(),
+ OS_FILE_CREATE, OS_FILE_NORMAL,
+ OS_DATA_FILE_NO_O_DIRECT, false, &ret);
if (!ret)
{
invalid_log:
@@ -2298,13 +2298,12 @@ static bool innodb_init()
#ifdef _WIN32
DWORD len;
- ret= WriteFile(os_file_t{file}, log_hdr_buf, sizeof log_hdr_buf,
+ ret= WriteFile(file, log_hdr_buf, sizeof log_hdr_buf,
&len, nullptr) && len == sizeof log_hdr_buf;
#else
- ret= sizeof log_hdr_buf == write(os_file_t{file}, log_hdr_buf,
- sizeof log_hdr_buf);
+ ret= sizeof log_hdr_buf == write(file, log_hdr_buf, sizeof log_hdr_buf);
#endif
- if (!os_file_close(file) || !ret)
+ if (!os_file_close_func(file) || !ret)
goto invalid_log;
return false;
}
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index bf2ab743a4c..c096c3c4a59 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -643,7 +643,6 @@ static PSI_thread_info all_innodb_threads[] = {
performance schema instrumented if "UNIV_PFS_IO" is defined */
static PSI_file_info all_innodb_files[] = {
PSI_KEY(innodb_data_file),
- PSI_KEY(innodb_log_file),
PSI_KEY(innodb_temp_file)
};
# endif /* UNIV_PFS_IO */
diff --git a/storage/innobase/include/log0log.h b/storage/innobase/include/log0log.h
index c45cdd7c676..00ed594c709 100644
--- a/storage/innobase/include/log0log.h
+++ b/storage/innobase/include/log0log.h
@@ -55,7 +55,7 @@ std::string get_log_file_path(const char *filename= LOG_FILE_NAME);
static inline void delete_log_file(const char* suffix)
{
auto path = get_log_file_path(LOG_FILE_NAME_PREFIX).append(suffix);
- os_file_delete_if_exists(innodb_log_file_key, path.c_str(), nullptr);
+ os_file_delete_if_exists_func(path.c_str(), nullptr);
}
struct completion_callback;
@@ -128,10 +128,10 @@ struct log_t;
class log_file_t
{
friend log_t;
- pfs_os_file_t m_file;
+ os_file_t m_file{OS_FILE_CLOSED};
public:
log_file_t()= default;
- log_file_t(pfs_os_file_t file) noexcept : m_file(file) {}
+ log_file_t(os_file_t file) noexcept : m_file(file) {}
/** Open a file
@return file size in bytes
diff --git a/storage/innobase/include/os0file.h b/storage/innobase/include/os0file.h
index 2910b8c78a0..c676f8f6d1c 100644
--- a/storage/innobase/include/os0file.h
+++ b/storage/innobase/include/os0file.h
@@ -447,7 +447,6 @@ bool os_file_close_func(os_file_t file);
/* Keys to register InnoDB I/O with performance schema */
extern mysql_pfs_key_t innodb_data_file_key;
-extern mysql_pfs_key_t innodb_log_file_key;
extern mysql_pfs_key_t innodb_temp_file_key;
/* Following four macros are instumentations to register
diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc
index d07e0ff1f7a..b7254ef2baa 100644
--- a/storage/innobase/log/log0log.cc
+++ b/storage/innobase/log/log0log.cc
@@ -146,7 +146,7 @@ dberr_t log_file_t::close() noexcept
{
ut_a(is_opened());
- if (!os_file_close(m_file))
+ if (!os_file_close_func(m_file))
return DB_ERROR;
m_file= OS_FILE_CLOSED;
diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc
index 53542247fb3..8ca25b5c9d5 100644
--- a/storage/innobase/log/log0recv.cc
+++ b/storage/innobase/log/log0recv.cc
@@ -1639,10 +1639,10 @@ dberr_t recv_sys_t::find_checkpoint()
file_checkpoint= 0;
std::string path{get_log_file_path()};
bool success;
- pfs_os_file_t file= os_file_create(innodb_log_file_key, path.c_str(),
+ os_file_t file{os_file_create_func(path.c_str(),
OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT,
OS_FILE_NORMAL, OS_LOG_FILE,
- srv_read_only_mode, &success);
+ srv_read_only_mode, &success)};
if (file == OS_FILE_CLOSED)
return DB_ERROR;
const os_offset_t size{os_file_get_size(file)};
@@ -1665,10 +1665,10 @@ dberr_t recv_sys_t::find_checkpoint()
for (int i= 1; i < 101; i++)
{
path= get_log_file_path(LOG_FILE_NAME_PREFIX).append(std::to_string(i));
- file= os_file_create(innodb_log_file_key, path.c_str(),
- OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT |
- OS_FILE_ON_ERROR_SILENT,
- OS_FILE_NORMAL, OS_LOG_FILE, true, &success);
+ file= os_file_create_func(path.c_str(),
+ OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT |
+ OS_FILE_ON_ERROR_SILENT,
+ OS_FILE_NORMAL, OS_LOG_FILE, true, &success);
if (file == OS_FILE_CLOSED)
break;
const os_offset_t sz{os_file_get_size(file)};
diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc
index f7038d693f1..74d1003276f 100644
--- a/storage/innobase/os/os0file.cc
+++ b/storage/innobase/os/os0file.cc
@@ -166,7 +166,6 @@ extern uint page_zip_level;
#ifdef UNIV_PFS_IO
/* Keys to register InnoDB I/O with performance schema */
mysql_pfs_key_t innodb_data_file_key;
-mysql_pfs_key_t innodb_log_file_key;
mysql_pfs_key_t innodb_temp_file_key;
#endif
diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc
index f812fcf3ead..f915fb09769 100644
--- a/storage/innobase/srv/srv0start.cc
+++ b/storage/innobase/srv/srv0start.cc
@@ -200,10 +200,11 @@ static dberr_t create_log_file(bool create_new_db, lsn_t lsn)
std::string logfile0{get_log_file_path("ib_logfile101")};
bool ret;
- pfs_os_file_t file = os_file_create(
- innodb_log_file_key, logfile0.c_str(),
- OS_FILE_CREATE|OS_FILE_ON_ERROR_NO_EXIT, OS_FILE_NORMAL,
- OS_LOG_FILE, srv_read_only_mode, &ret);
+ os_file_t file{
+ os_file_create_func(logfile0.c_str(),
+ OS_FILE_CREATE | OS_FILE_ON_ERROR_NO_EXIT,
+ OS_FILE_NORMAL, OS_LOG_FILE, false, &ret)
+ };
if (!ret) {
sql_print_error("InnoDB: Cannot create %.*s",
@@ -215,7 +216,7 @@ err_exit:
ret = os_file_set_size(logfile0.c_str(), file, srv_log_file_size);
if (!ret) {
- os_file_close(file);
+ os_file_close_func(file);
ib::error() << "Cannot set log file " << logfile0
<< " size to " << ib::bytes_iec{srv_log_file_size};
goto err_exit;
@@ -489,7 +490,7 @@ dberr_t
srv_check_undo_redo_logs_exists()
{
bool ret;
- pfs_os_file_t fh;
+ os_file_t fh;
char name[OS_FILE_MAX_PATH];
/* Check if any undo tablespaces exist */
@@ -497,8 +498,8 @@ srv_check_undo_redo_logs_exists()
snprintf(name, sizeof name, "%s/undo%03zu", srv_undo_dir, i);
- fh = os_file_create(
- innodb_data_file_key, name,
+ fh = os_file_create_func(
+ name,
OS_FILE_OPEN_RETRY
| OS_FILE_ON_ERROR_NO_EXIT
| OS_FILE_ON_ERROR_SILENT,
@@ -508,7 +509,7 @@ srv_check_undo_redo_logs_exists()
&ret);
if (ret) {
- os_file_close(fh);
+ os_file_close_func(fh);
ib::error()
<< "undo tablespace '" << name << "' exists."
" Creating system tablespace with existing undo"
@@ -522,14 +523,14 @@ srv_check_undo_redo_logs_exists()
/* Check if redo log file exists */
auto logfilename = get_log_file_path();
- fh = os_file_create(innodb_log_file_key, logfilename.c_str(),
- OS_FILE_OPEN_RETRY | OS_FILE_ON_ERROR_NO_EXIT
- | OS_FILE_ON_ERROR_SILENT,
- OS_FILE_NORMAL, OS_LOG_FILE, srv_read_only_mode,
- &ret);
+ fh = os_file_create_func(logfilename.c_str(),
+ OS_FILE_OPEN_RETRY | OS_FILE_ON_ERROR_NO_EXIT
+ | OS_FILE_ON_ERROR_SILENT,
+ OS_FILE_NORMAL, OS_LOG_FILE,
+ srv_read_only_mode, &ret);
if (ret) {
- os_file_close(fh);
+ os_file_close_func(fh);
ib::error() << "redo log file '" << logfilename
<< "' exists. Creating system tablespace with"
" existing redo log file is not recommended."