Author: anevilyak Date: 2010-02-09 02:13:35 +0100 (Tue, 09 Feb 2010) New Revision: 35434 Changeset: http://dev.haiku-os.org/changeset/35434/haiku Ticket: http://dev.haiku-os.org/ticket/3690 Modified: haiku/trunk/src/add-ons/kernel/file_systems/fat/dir.c haiku/trunk/src/add-ons/kernel/file_systems/fat/fat.c Log: Apply patches by romain: - Initialize flags argument correctly in get_vnode. - Fix issues with handling the FAT mirror incorrectly. Should resolve ticket #3690 and possibly others. Modified: haiku/trunk/src/add-ons/kernel/file_systems/fat/dir.c =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/fat/dir.c 2010-02-08 22:50:38 UTC (rev 35433) +++ haiku/trunk/src/add-ons/kernel/file_systems/fat/dir.c 2010-02-09 01:13:35 UTC (rev 35434) @@ -921,7 +921,7 @@ _node->private_node = NULL; _node->ops = &gFATVnodeOps; - _flags = 0; + *_flags = 0; DPRINTF(0, ("dosfs_read_vnode (vnode id %Lx)\n", vnid)); Modified: haiku/trunk/src/add-ons/kernel/file_systems/fat/fat.c =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/fat/fat.c 2010-02-08 22:50:38 UTC (rev 35433) +++ haiku/trunk/src/add-ons/kernel/file_systems/fat/fat.c 2010-02-09 01:13:35 UTC (rev 35434) @@ -29,7 +29,6 @@ mirror_fats(nspace *vol, uint32 sector, uint8 *buffer) { uint32 i; - char *buf = buffer; if (!vol->fat_mirrored) return B_OK; @@ -43,8 +42,7 @@ blockData = block_cache_get_writable_etc(vol->fBlockCache, sector + i * vol->sectors_per_fat, 0, 1, -1); - memcpy(blockData, buf, vol->bytes_per_sector); - buf += vol->bytes_per_sector; + memcpy(blockData, buffer, vol->bytes_per_sector); block_cache_put(vol->fBlockCache, sector + i * vol->sectors_per_fat); }