aboutsummaryrefslogtreecommitdiff
path: root/src/validation.cpp
diff options
context:
space:
mode:
authorJim Posen <jim.posen@gmail.com>2019-01-06 10:14:35 -0800
committerJim Posen <jim.posen@gmail.com>2019-02-22 17:38:45 -0800
commite0380933e3745214331d358bda8c5e79299c84d2 (patch)
treeb3dc6b1ad203e1c19b7beceae88e9b3131e4025d /src/validation.cpp
parent992404b31ed2f8cabeed59d074552f0ae10fda94 (diff)
downloadbitcoin-e0380933e3745214331d358bda8c5e79299c84d2.tar.xz
validation: Refactor file flush logic into FlatFileSeq.
Diffstat (limited to 'src/validation.cpp')
-rw-r--r--src/validation.cpp23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index aca555ee0a..98d89599f1 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -1630,25 +1630,12 @@ void static FlushBlockFile(bool fFinalize = false)
{
LOCK(cs_LastBlockFile);
- CDiskBlockPos posOld(nLastBlockFile, 0);
- bool status = true;
-
- FILE *fileOld = OpenBlockFile(posOld);
- if (fileOld) {
- if (fFinalize)
- status &= TruncateFile(fileOld, vinfoBlockFile[nLastBlockFile].nSize);
- status &= FileCommit(fileOld);
- fclose(fileOld);
- }
-
- fileOld = OpenUndoFile(posOld);
- if (fileOld) {
- if (fFinalize)
- status &= TruncateFile(fileOld, vinfoBlockFile[nLastBlockFile].nUndoSize);
- status &= FileCommit(fileOld);
- fclose(fileOld);
- }
+ CDiskBlockPos block_pos_old(nLastBlockFile, vinfoBlockFile[nLastBlockFile].nSize);
+ CDiskBlockPos undo_pos_old(nLastBlockFile, vinfoBlockFile[nLastBlockFile].nUndoSize);
+ bool status = true;
+ status &= BlockFileSeq().Flush(block_pos_old, fFinalize);
+ status &= UndoFileSeq().Flush(undo_pos_old, fFinalize);
if (!status) {
AbortNode("Flushing block file to disk failed. This is likely the result of an I/O error.");
}