Rockbox mail archiveSubject: Re: error in disk write code
Re: error in disk write code
From: Greg Haerr <greg_at_censoft.com>
Date: Fri, 8 Nov 2002 12:05:57 -0700
: "Panic: Cluster chain too short"
: This happens only when the disk is formatted with
: sectors per cluster = 1. (./fat ds 0, byte 14 = 01)
I have fixed the problem. The cache_fat_sector code is
incorrect. When the hash FAT cache entry is inuse and dirty,
but required by a new FAT hash, the cache_fat_sector
code writes out the first FAT entry using the NEW sector
number, rather than the cached sector value. To fix change the line:
if (ata_write_sector(secnum + ...
if(ata_write_sector(fat_cache_sectors[cache_index].secnum + ...
And the filesystem will work properly for any file size
that requires > 4092 clusters.
I was incorrect in an earlier statement: the read code
does work in the current CVS code because no
FAT cache entries are ever modified, so the wrong
sector doesn't ever get written...
Received on 2002-11-08