diff options
author | heikki@hundin.mysql.fi <> | 2002-07-19 18:49:25 +0300 |
---|---|---|
committer | heikki@hundin.mysql.fi <> | 2002-07-19 18:49:25 +0300 |
commit | 5b76647205dcd4dd8c0c7003894fe4bd09bf25de (patch) | |
tree | 6769b33b2e799157435c130647e67fd387285ada | |
parent | d7f2152b9ed5ac10f95ba649cddb3797472f25d2 (diff) | |
download | mariadb-git-5b76647205dcd4dd8c0c7003894fe4bd09bf25de.tar.gz |
fil0fil.c:
Align a buffer for i/o from a raw device
-rw-r--r-- | innobase/fil/fil0fil.c | 9 |
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; |