summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattV <qt-info@nokia.com>2009-06-01 12:11:18 +1000
committerMattV <qt-info@nokia.com>2009-06-01 12:11:18 +1000
commita4b0fb363589480ae9cd77492411e7ae0ab8a894 (patch)
tree51b6732ba514f71d3d94632fa88739bd8b9c63c5
parentdd1ba36774ae7f7208b80cf3c308a8ea14ea8d8e (diff)
Ensure flushing occurs before sync.2009W22
-rw-r--r--src/plugins/contentmanagers/qtopiamailfile/qtopiamailfilemanager.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/contentmanagers/qtopiamailfile/qtopiamailfilemanager.cpp b/src/plugins/contentmanagers/qtopiamailfile/qtopiamailfilemanager.cpp
index 9052bf1a..1ec0d131 100644
--- a/src/plugins/contentmanagers/qtopiamailfile/qtopiamailfilemanager.cpp
+++ b/src/plugins/contentmanagers/qtopiamailfile/qtopiamailfilemanager.cpp
@@ -150,8 +150,11 @@ bool migrateAccountToVersion101(const QMailAccountId &accountId)
return true;
}
-void sync(const QFile &file)
+void sync(QFile &file)
{
+ // Ensure data is flushed to OS before attempting sync
+ file.flush();
+
#if defined(_POSIX_SYNCHRONIZED_IO) && (_POSIX_SYNCHRONIZED_IO > 0)
::fdatasync(file.handle());
#else
@@ -220,7 +223,6 @@ QMailStore::ErrorCode QtopiamailfileManager::addOrRename(QMailMessage *message,
// Write the message to file (not including sub-part contents)
QDataStream out(&file);
message->toRfc2822(out, QMailMessage::StorageFormat);
- bool isOk = out.status() != QDataStream::Ok;
if ((out.status() != QDataStream::Ok) ||
// Write each part to file
((message->multipartType() != QMailMessagePartContainer::MultipartNone) &&