From 7d81a3b5629456602da2f47d7cb54170aaba3ff4 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 16 Dec 2011 09:19:59 -0800 Subject: [PATCH] filejournal: preallocate journal bytes on create This should reduce fragmentation for large journals that are written slowly the first time around. Signed-off-by: Sage Weil --- src/os/FileJournal.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index 6b9e47e740c6d..5e8b285b7c9ea 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -299,6 +299,13 @@ int FileJournal::_open_file(int64_t oldsize, blksize_t blksize, << newsize << " bytes: " << cpp_strerror(err) << dendl; return -err; } + ret = ::posix_fallocate(fd, 0, newsize); + if (ret < 0) { + int err = errno; + derr << "FileJournal::_open_file : unable to preallocation journal to " + << newsize << " bytes: " << cpp_strerror(err) << dendl; + return -err; + } max_size = newsize; } else { -- 2.39.5