summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-11-14 15:50:07 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-11-14 15:50:07 +0000
commit4cde17d1ca7571055b0586fee78bf71765ab32ff (patch)
treeb3ae564beda0984c057e5f38b08dc3079ec9faf2
parentdc9cdc40edffad60b17434c2d9769e242edc3397 (diff)
downloadrockbox-4cde17d1ca7571055b0586fee78bf71765ab32ff.zip
rockbox-4cde17d1ca7571055b0586fee78bf71765ab32ff.tar.gz
rockbox-4cde17d1ca7571055b0586fee78bf71765ab32ff.tar.bz2
rockbox-4cde17d1ca7571055b0586fee78bf71765ab32ff.tar.xz
Flush sector cache before truncating.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2849 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/common/file.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/firmware/common/file.c b/firmware/common/file.c
index 504273f..01a0ebf 100644
--- a/firmware/common/file.c
+++ b/firmware/common/file.c
@@ -174,18 +174,18 @@ int close(int fd)
return -2;
}
if (file->write) {
- /* truncate? */
- if (file->trunc) {
- if (ftruncate(fd, file->fileoffset) < 0)
- return -1;
- }
-
/* flush sector cache */
if ( file->dirty ) {
if (flush_cache(fd) < 0)
return -2;
}
+ /* truncate? */
+ if (file->trunc) {
+ if (ftruncate(fd, file->fileoffset) < 0)
+ return -1;
+ }
+
/* tie up all loose ends */
if (fat_closewrite(&(file->fatfile), file->size) < 0)
return -3;