Browse Source

MDEV-11520 post-fixes

Remove the unused variable desired_size.

Also, correct the expression for the posix_fallocate() start_offset,
and actually test that it works with a multi-file system tablespace.
Before MDEV-11520, the expression was wrong in both innodb_plugin and
xtradb, in different ways.

The start_offset formula was tested with the following:

./mtr --big-test --mysqld=--innodb-use-fallocate \
--mysqld=--innodb-data-file-path='ibdata1:5M;ibdata2:5M:autoextend' \
--parallel=auto --force --retry=0 --suite=innodb &

ls -lsh mysql-test/var/*/mysqld.1/data/ibdata2
pull/328/head
Marko Mäkelä 9 years ago
parent
commit
6de50b2c7f
  1. 8
      storage/innobase/fil/fil0fil.c
  2. 2
      storage/xtradb/fil/fil0fil.c

8
storage/innobase/fil/fil0fil.c

@ -4136,9 +4136,11 @@ fil_extend_space_to_desired_size(
#ifdef HAVE_POSIX_FALLOCATE
if (srv_use_posix_fallocate) {
ib_int64_t start_offset = start_page_no * page_size;
ib_int64_t end_offset = (size_after_extend - start_page_no) * page_size;
ib_int64_t desired_size = size_after_extend*page_size;
ib_int64_t start_offset
= (start_page_no - file_start_page_no) * page_size;
ib_int64_t end_offset
= (size_after_extend - file_start_page_no) * page_size;
int err = posix_fallocate(
node->handle, start_offset, end_offset);

2
storage/xtradb/fil/fil0fil.c

@ -4973,7 +4973,7 @@ fil_extend_space_to_desired_size(
if (srv_use_posix_fallocate) {
ib_int64_t start_offset
= file_start_page_no * page_size;
= (start_page_no - file_start_page_no) * page_size;
ib_int64_t end_offset
= (size_after_extend - file_start_page_no) * page_size;
int err = posix_fallocate(

Loading…
Cancel
Save