1
0
Fork 0
forked from len0rd/rockbox

Previous change broke read after seek. Reverted that change and added temporary fix in flush_cache to make sure we are on correct sector before writing to disk.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3448 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Hardeep Sidhu 2003-03-15 21:13:35 +00:00
parent 001226c7e1
commit e5e9bc3e65

View file

@ -337,9 +337,15 @@ static int flush_cache(int fd)
{
int rc;
struct filedesc* file = &openfiles[fd];
int sector = file->fileoffset / SECTOR_SIZE;
DEBUGF("Flushing dirty sector cache\n");
/* make sure we are on correct sector */
rc = fat_seek(&(file->fatfile), sector);
if ( rc < 0 )
return rc * 10 - 3;
rc = fat_readwrite(&(file->fatfile), 1,
file->cache, true );
if ( rc < 0 )
@ -573,13 +579,6 @@ int lseek(int fd, int offset, int whence)
return rc * 10 - 6;
}
file->cacheoffset = sectoroffset;
/* seek back to current sector */
rc = fat_seek(&(file->fatfile), newsector);
if ( rc < 0 ) {
errno = EIO;
return rc * 10 - 7;
}
}
else
file->cacheoffset = -1;