diff options
Diffstat (limited to 'firmware/common/file.c')
-rw-r--r-- | firmware/common/file.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/firmware/common/file.c b/firmware/common/file.c index 504273fd67..01a0ebf890 100644 --- a/firmware/common/file.c +++ b/firmware/common/file.c | |||
@@ -174,18 +174,18 @@ int close(int fd) | |||
174 | return -2; | 174 | return -2; |
175 | } | 175 | } |
176 | if (file->write) { | 176 | if (file->write) { |
177 | /* truncate? */ | ||
178 | if (file->trunc) { | ||
179 | if (ftruncate(fd, file->fileoffset) < 0) | ||
180 | return -1; | ||
181 | } | ||
182 | |||
183 | /* flush sector cache */ | 177 | /* flush sector cache */ |
184 | if ( file->dirty ) { | 178 | if ( file->dirty ) { |
185 | if (flush_cache(fd) < 0) | 179 | if (flush_cache(fd) < 0) |
186 | return -2; | 180 | return -2; |
187 | } | 181 | } |
188 | 182 | ||
183 | /* truncate? */ | ||
184 | if (file->trunc) { | ||
185 | if (ftruncate(fd, file->fileoffset) < 0) | ||
186 | return -1; | ||
187 | } | ||
188 | |||
189 | /* tie up all loose ends */ | 189 | /* tie up all loose ends */ |
190 | if (fat_closewrite(&(file->fatfile), file->size) < 0) | 190 | if (fat_closewrite(&(file->fatfile), file->size) < 0) |
191 | return -3; | 191 | return -3; |