summaryrefslogtreecommitdiff
path: root/bin/bbstored
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2010-09-13 17:58:18 +0000
committerChris Wilson <chris+github@qwirx.com>2010-09-13 17:58:18 +0000
commitd94983dfbefd935a592c070c59cd05a09c0ccab4 (patch)
treed92c9455e535604c42d7025516ff070d40b2fa78 /bin/bbstored
parentea9e4be269baf2ad8db3e23500315083b9cc0df0 (diff)
Implement write buffering on directories.
Diffstat (limited to 'bin/bbstored')
-rw-r--r--bin/bbstored/BackupStoreContext.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/bin/bbstored/BackupStoreContext.cpp b/bin/bbstored/BackupStoreContext.cpp
index 6d955a00..9a98decf 100644
--- a/bin/bbstored/BackupStoreContext.cpp
+++ b/bin/bbstored/BackupStoreContext.cpp
@@ -11,21 +11,22 @@
#include <stdio.h>
+#include "BackupConstants.h"
#include "BackupStoreContext.h"
-#include "RaidFileWrite.h"
-#include "RaidFileRead.h"
+#include "BackupStoreDaemon.h"
#include "BackupStoreDirectory.h"
#include "BackupStoreException.h"
-#include "BackupStoreInfo.h"
-#include "BackupConstants.h"
#include "BackupStoreFile.h"
+#include "BackupStoreInfo.h"
#include "BackupStoreObjectMagic.h"
-#include "StoreStructure.h"
-#include "BackupStoreDaemon.h"
-#include "RaidFileController.h"
+#include "BufferedStream.h"
+#include "BufferedWriteStream.h"
#include "FileStream.h"
#include "InvisibleTempFileStream.h"
-#include "BufferedStream.h"
+#include "RaidFileController.h"
+#include "RaidFileRead.h"
+#include "RaidFileWrite.h"
+#include "StoreStructure.h"
#include "MemLeakFindOn.h"
@@ -942,7 +943,10 @@ void BackupStoreContext::SaveDirectory(BackupStoreDirectory &rDir, int64_t Objec
{
RaidFileWrite writeDir(mStoreDiscSet, dirfn);
writeDir.Open(true /* allow overwriting */);
- rDir.WriteToStream(writeDir);
+
+ BufferedWriteStream buffer(writeDir);
+ rDir.WriteToStream(buffer);
+ buffer.Flush();
// get the disc usage (must do this before commiting it)
int64_t dirSize = writeDir.GetDiscUsageInBlocks();