summaryrefslogtreecommitdiff
path: root/innobase/fil
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2002-07-19 18:49:25 +0300
committerunknown <heikki@hundin.mysql.fi>2002-07-19 18:49:25 +0300
commit887aaff93919e9f359133d8c7a86277789d130e1 (patch)
tree6769b33b2e799157435c130647e67fd387285ada /innobase/fil
parentdda85ba004d099adfcdf794e02db4467f3662409 (diff)
downloadmariadb-git-887aaff93919e9f359133d8c7a86277789d130e1.tar.gz
fil0fil.c:
Align a buffer for i/o from a raw device innobase/fil/fil0fil.c: Align a buffer for i/o from a raw device
Diffstat (limited to 'innobase/fil')
-rw-r--r--innobase/fil/fil0fil.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/innobase/fil/fil0fil.c b/innobase/fil/fil0fil.c
index ca508785497..910ca842f21 100644
--- a/innobase/fil/fil0fil.c
+++ b/innobase/fil/fil0fil.c
@@ -573,17 +573,20 @@ fil_read_flushed_lsn_and_arch_log_no(
ulint* max_arch_log_no) /* in/out: */
{
byte* buf;
+ byte* buf2;
dulint flushed_lsn;
ulint arch_log_no;
- buf = ut_malloc(UNIV_PAGE_SIZE);
-
+ buf2 = ut_malloc(2 * UNIV_PAGE_SIZE);
+ /* Align the memory for a possibel read from a raw device */
+ buf = ut_align(buf2, UNIV_PAGE_SIZE);
+
os_file_read(data_file, buf, 0, 0, UNIV_PAGE_SIZE);
flushed_lsn = mach_read_from_8(buf + FIL_PAGE_FILE_FLUSH_LSN);
arch_log_no = mach_read_from_4(buf + FIL_PAGE_ARCH_LOG_NO);
- ut_free(buf);
+ ut_free(buf2);
if (!one_read_already) {
*min_flushed_lsn = flushed_lsn;