From: Igor Fedotov Date: Wed, 1 Mar 2023 13:04:23 +0000 (+0300) Subject: os/bluestore: proper override rocksdb::WritableFile::Allocate X-Git-Tag: v19.0.0~1187^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2d8b9e9ed58bca4917b90ea5eaa43264a89dff75;p=ceph.git os/bluestore: proper override rocksdb::WritableFile::Allocate Failing to do that makes BlueFS file frgmentation higher. Fixes: https://tracker.ceph.com/issues/58966 Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueRocksEnv.cc b/src/os/bluestore/BlueRocksEnv.cc index 0d76a8597190..68040af42828 100644 --- a/src/os/bluestore/BlueRocksEnv.cc +++ b/src/os/bluestore/BlueRocksEnv.cc @@ -285,14 +285,12 @@ class BlueRocksWritableFile : public rocksdb::WritableFile { return rocksdb::Status::OK(); } - using rocksdb::WritableFile::RangeSync; // Sync a file range with disk. // offset is the starting byte of the file range to be synchronized. // nbytes specifies the length of the range to be synchronized. // This asks the OS to initiate flushing the cached data to disk, // without waiting for completion. - // Default implementation does nothing. - rocksdb::Status RangeSync(off_t offset, off_t nbytes) { + rocksdb::Status RangeSync(uint64_t offset, uint64_t nbytes) override { // round down to page boundaries int partial = offset & 4095; offset -= partial; @@ -304,11 +302,10 @@ class BlueRocksWritableFile : public rocksdb::WritableFile { } protected: - using rocksdb::WritableFile::Allocate; /* * Pre-allocate space for a file. */ - rocksdb::Status Allocate(off_t offset, off_t len) { + rocksdb::Status Allocate(uint64_t offset, uint64_t len) override { int r = fs->preallocate(h->file, offset, len); return err_to_status(r); }