mariadb/storage/xtradb
Marko Mäkelä 31d592ba7d MDEV-18349 InnoDB file size changes are not safe when file system crashes
When InnoDB is invoking posix_fallocate() to extend data files, it
was missing a call to fsync() to update the file system metadata.
If file system recovery is needed, the file size could be incorrect.

When the setting innodb_flush_method=O_DIRECT_NO_FSYNC
that was introduced in MariaDB 10.0.11 (and MySQL 5.6) is enabled,
InnoDB would wrongly skip fsync() after extending files.

Furthermore, the merge commit d8b45b0c00
inadvertently removed XtraDB error checking for posix_fallocate()
which this fix is restoring.

fil_flush(): Add the parameter bool metadata=false to request that
fil_buffering_disabled() be ignored.

fil_extend_space_to_desired_size(): Invoke fil_flush() with the
extra parameter. After successful posix_fallocate(), invoke
os_file_flush(). Note: The bookkeeping for fil_flush() would not be
updated the posix_fallocate() code path, so the "redundant"
fil_flush() should be a no-op.
2019-01-23 12:18:00 +02:00
..
api Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
btr Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
buf MDEV-17957 Make Innodb_checksum_algorithm stricter for strict_* values 2018-12-13 12:06:14 +02:00
data Merge remote-tracking branch '5.5' into 10.0 2018-01-24 12:29:31 +02:00
dict Revert some InnoDB/XtraDB changes 2018-11-05 16:47:14 +02:00
dyn Merge branch '5.5' into 10.0 2017-03-03 01:37:54 +02:00
eval move to storage/xtradb 2015-05-04 19:15:28 +02:00
fil MDEV-18349 InnoDB file size changes are not safe when file system crashes 2019-01-23 12:18:00 +02:00
fsp Merge branch 'merge/merge-xtradb-5.5' into 5.5 2018-10-24 11:09:16 +02:00
fts Revert some InnoDB/XtraDB changes 2018-11-05 16:47:14 +02:00
fut move to storage/xtradb 2015-05-04 19:15:28 +02:00
ha 5.6.30-76.3 2016-06-21 14:20:09 +02:00
handler Merge pull request #973 from tempesta-tech/tt-10.0-MDEV-16499-virtual-innodb 2019-01-14 14:06:26 +02:00
ibuf MDEV-12173 "Error: trying to do an operation on a dropped tablespace" 2018-01-22 16:58:13 +02:00
include MDEV-18349 InnoDB file size changes are not safe when file system crashes 2019-01-23 12:18:00 +02:00
lock MDEV-14988 innodb_read_only tries to modify files if transactions were recovered in COMMITTED state 2018-02-13 14:29:32 +02:00
log 5.6.41-84.1 2018-10-27 20:53:19 +02:00
mach 5.5.55-38.8 2017-07-18 19:47:01 +02:00
mem Merge 5.5 into 10.0 2018-03-20 18:36:03 +02:00
mtr Merge branch '5.5' into 10.0 2017-03-03 01:37:54 +02:00
mysql-test/storage_engine MDEV-12915 ST_Centroid does not return the same result than MySQL 2017-08-01 09:52:59 +02:00
os MDEV-18243 incorrect ASAN instrumentation 2019-01-15 15:32:18 +03:00
page MDEV-17957 Make Innodb_checksum_algorithm stricter for strict_* values 2018-12-13 12:06:14 +02:00
pars Merge branch 'merge/merge-xtradb-5.6' into 10.0 2018-10-28 10:04:36 +01:00
que 5.6.24-72.2 2015-06-16 11:04:40 +02:00
read move to storage/xtradb 2015-05-04 19:15:28 +02:00
rem Merge remote-tracking branch '5.5' into 10.0 2018-01-24 12:29:31 +02:00
row MDEV-17797 Add ASAN poisoning for mem_heap_t 2019-01-15 12:12:59 +02:00
srv Merge branch 'merge/merge-xtradb-5.6' into 10.0 2018-10-28 10:04:36 +01:00
sync 5.5.61-38.13 2018-10-24 10:30:31 +02:00
trx MDEV-12023 Assertion failure sym_node->table != NULL on startup 2018-10-30 13:29:19 +02:00
usr Remove redundant UT_LIST_INIT() calls 2017-05-17 10:33:49 +03:00
ut Merge branch 'merge-xtradb-5.6' into 10.0 2018-04-26 14:13:58 +02:00
.clang-format 5.6.41-84.1 2018-10-27 20:53:19 +02:00
CMakeLists.txt Merge branch 'merge/merge-xtradb-5.6' into 10.0 2018-10-28 10:04:36 +01:00
COPYING.Google move to storage/xtradb 2015-05-04 19:15:28 +02:00
COPYING.Percona move to storage/xtradb 2015-05-04 19:15:28 +02:00
Doxyfile move to storage/xtradb 2015-05-04 19:15:28 +02:00
ha_innodb.def move to storage/xtradb 2015-05-04 19:15:28 +02:00