summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-11-04 13:52:47 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-11-04 13:52:47 +0000
commit6a8900b528922b4b26ce2f582233036da14c2614 (patch)
treeda5fc48adf37e898e07d25065966a4ca344cf9d8 /firmware
parent307f5d846e1513ef609b76e2d6cea035c8465b33 (diff)
downloadrockbox-6a8900b528922b4b26ce2f582233036da14c2614.tar.gz
rockbox-6a8900b528922b4b26ce2f582233036da14c2614.zip
Bugfix: If last sector of a requested transfer was nonconsecutive, it would not be written.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2802 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/fat.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index 74f61c2552..f6d6c73e74 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -1178,13 +1178,12 @@ int fat_readwrite( struct fat_file *file, int sectorcount,
1178 ((char*)buf) += count * SECTOR_SIZE; 1178 ((char*)buf) += count * SECTOR_SIZE;
1179 first = sector; 1179 first = sector;
1180 } 1180 }
1181 else { 1181
1182 if (i == sectorcount-1) { /* last sector requested */ 1182 if (i == sectorcount-1) { /* last sector requested */
1183 int count = sector - first + 1; 1183 int count = sector - first + 1;
1184 if (!transfer( first + fat_bpb.startsector, 1184 if (!transfer( first + fat_bpb.startsector,
1185 count, buf, write )) 1185 count, buf, write ))
1186 return -2; 1186 return -2;
1187 }
1188 } 1187 }
1189 1188
1190 last = sector; 1189 last = sector;