[Commits] bzr commit into Mariadb 5.2, with Maria 2.0:maria/5.2 branch (monty:2845)

Michael Widenius michael.widenius at gmail.com
Tue Aug 10 16:35:33 EEST 2010


#At lp:maria/5.2 based on revid:monty at mysql.com-20100809180000-wgxpiq7p5p0111es

 2845 Michael Widenius	2010-08-10 [merge]
      Merge with 5.1 to get in critical bug fix that caused Aria tests to fail
      modified:
        mysys/my_sync.c
        storage/maria/ma_write.c

=== modified file 'mysys/my_sync.c'
--- a/mysys/my_sync.c	2010-08-09 17:05:42 +0000
+++ b/mysys/my_sync.c	2010-08-09 17:54:58 +0000
@@ -68,6 +68,8 @@ int my_sync(File fd, myf my_flags)
     res= fdatasync(fd);
 #elif defined(HAVE_FSYNC)
     res= fsync(fd);
+    if (res == -1 and errno == ENOLCK)
+      res= 0;                                   /* Result Bug in Old FreeBSD */
 #elif defined(__WIN__)
     res= _commit(fd);
 #else

=== modified file 'storage/maria/ma_write.c'
--- a/storage/maria/ma_write.c	2010-08-09 17:05:42 +0000
+++ b/storage/maria/ma_write.c	2010-08-10 13:29:50 +0000
@@ -1914,7 +1914,6 @@ my_bool _ma_log_change(MARIA_PAGE *ma_pa
   uchar log_data[FILEID_STORE_SIZE + PAGE_STORE_SIZE + 2 + 6 + 7], *log_pos;
   LEX_CUSTRING log_array[TRANSLOG_INTERNAL_PARTS + 3];
   uint offset= (uint) (key_pos - ma_page->buff), translog_parts;
-  uint extra_length= 0;
   my_off_t page;
   MARIA_HA *info= ma_page->info;
   DBUG_ENTER("_ma_log_change");
@@ -1956,15 +1955,14 @@ my_bool _ma_log_change(MARIA_PAGE *ma_pa
     int4store(log_pos+3, crc);
     log_array[TRANSLOG_INTERNAL_PARTS + translog_parts].str= log_pos;
     log_array[TRANSLOG_INTERNAL_PARTS + translog_parts].length= 7;
-    extra_length+= 7;
+    log_pos+= 7;
     translog_parts++;
   }
 #endif
 
   if (translog_write_record(&lsn, LOGREC_REDO_INDEX,
                             info->trn, info,
-                            (translog_size_t) (sizeof(log_data) - 7 + length +
-                                               extra_length),
+                            (translog_size_t) (log_pos - log_data) + length,
                             TRANSLOG_INTERNAL_PARTS + translog_parts,
                             log_array, log_data, NULL))
     DBUG_RETURN(1);



More information about the commits mailing list