summaryrefslogtreecommitdiff
path: root/storage/innobase/fil
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-01-23 14:34:23 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2019-01-23 14:34:23 +0200
commit3b6d2efcb1d5be93574b3b345e3dbfc8fc9387e1 (patch)
tree0f28104bebbe56d1b93b8a02c5a032c07d910f7c /storage/innobase/fil
parent52d13036d81fdaa277c9894784dfefd85cf41287 (diff)
parent2a0f1d613219ad7962c3394b9c1996ece40926df (diff)
downloadmariadb-git-3b6d2efcb1d5be93574b3b345e3dbfc8fc9387e1.tar.gz
Merge 10.0 into 10.1
Diffstat (limited to 'storage/innobase/fil')
-rw-r--r--storage/innobase/fil/fil0fil.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc
index 5891db62758..31178b67a06 100644
--- a/storage/innobase/fil/fil0fil.cc
+++ b/storage/innobase/fil/fil0fil.cc
@@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
-Copyright (c) 2014, 2018, MariaDB Corporation.
+Copyright (c) 2014, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
@@ -838,10 +838,9 @@ fil_try_to_close_file_in_LRU(
}
/** Flush any writes cached by the file system.
-@param[in,out] space tablespace */
-static
-void
-fil_flush_low(fil_space_t* space)
+@param[in,out] space tablespace
+@param[in] metadata whether to update file system metadata */
+static void fil_flush_low(fil_space_t* space, bool metadata = false)
{
ut_ad(mutex_own(&fil_system->mutex));
ut_ad(space);
@@ -865,7 +864,7 @@ fil_flush_low(fil_space_t* space)
}
#endif /* UNIV_DEBUG */
- return;
+ if (!metadata) return;
}
/* Prevent dropping of the space while we are flushing */
@@ -1030,12 +1029,12 @@ fil_space_extend_must_retry(
*success = os_file_set_size(node->name, node->handle, new_size,
FSP_FLAGS_HAS_PAGE_COMPRESSION(space->flags));
-
DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28",
*success = FALSE;
os_has_said_disk_full = TRUE;);
if (*success) {
+ os_file_flush(node->handle);
os_has_said_disk_full = FALSE;
start_page_no = size;
}
@@ -1063,7 +1062,7 @@ fil_space_extend_must_retry(
= (node->size / pages_per_mb) * pages_per_mb;
}
- fil_flush_low(space);
+ fil_flush_low(space, true);
return(false);
}