summaryrefslogtreecommitdiffstats
path: root/src/ceph/0002-librbd-cleanup-rbd-shared-RO-cache.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/ceph/0002-librbd-cleanup-rbd-shared-RO-cache.patch')
-rw-r--r--src/ceph/0002-librbd-cleanup-rbd-shared-RO-cache.patch847
1 files changed, 0 insertions, 847 deletions
diff --git a/src/ceph/0002-librbd-cleanup-rbd-shared-RO-cache.patch b/src/ceph/0002-librbd-cleanup-rbd-shared-RO-cache.patch
deleted file mode 100644
index 7fb78e3..0000000
--- a/src/ceph/0002-librbd-cleanup-rbd-shared-RO-cache.patch
+++ /dev/null
@@ -1,847 +0,0 @@
-From 26f4a0804c035895fd77e9a70f47ede3f4512bde Mon Sep 17 00:00:00 2001
-From: Yuan Zhou <yuan.zhou@intel.com>
-Date: Wed, 20 Jun 2018 11:34:17 +0800
-Subject: [PATCH 02/10] librbd: cleanup rbd shared RO cache
-
-- adding namespace for rbd cache controller
-- move SyncFile code under librbd/cache/
-
-Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
----
- src/librbd/CMakeLists.txt | 2 +-
- src/librbd/cache/SharedPersistentObjectCacher.cc | 4 +-
- src/librbd/cache/SharedPersistentObjectCacher.h | 6 +-
- .../cache/SharedPersistentObjectCacherFile.cc | 114 +++++++++++++++++++++
- .../cache/SharedPersistentObjectCacherFile.h | 74 +++++++++++++
- .../SharedPersistentObjectCacherObjectDispatch.cc | 4 +-
- .../SharedPersistentObjectCacherObjectDispatch.h | 2 +-
- src/os/CacheStore/SyncFile.cc | 110 --------------------
- src/os/CacheStore/SyncFile.h | 74 -------------
- src/tools/rbd_cache/CMakeLists.txt | 2 +-
- src/tools/rbd_cache/CacheController.cc | 9 +-
- src/tools/rbd_cache/CacheController.h | 55 ++++++++++
- src/tools/rbd_cache/CacheController.hpp | 49 ---------
- src/tools/rbd_cache/CacheControllerSocket.hpp | 6 ++
- .../rbd_cache/CacheControllerSocketClient.hpp | 5 +
- src/tools/rbd_cache/CacheControllerSocketCommon.h | 5 +
- src/tools/rbd_cache/ObjectCacheStore.cc | 7 +-
- src/tools/rbd_cache/ObjectCacheStore.h | 9 +-
- src/tools/rbd_cache/main.cc | 6 +-
- 19 files changed, 293 insertions(+), 250 deletions(-)
- create mode 100644 src/librbd/cache/SharedPersistentObjectCacherFile.cc
- create mode 100644 src/librbd/cache/SharedPersistentObjectCacherFile.h
- delete mode 100644 src/os/CacheStore/SyncFile.cc
- delete mode 100644 src/os/CacheStore/SyncFile.h
- create mode 100644 src/tools/rbd_cache/CacheController.h
- delete mode 100644 src/tools/rbd_cache/CacheController.hpp
-
-diff --git a/src/librbd/CMakeLists.txt b/src/librbd/CMakeLists.txt
-index 92539a8..540ee78 100644
---- a/src/librbd/CMakeLists.txt
-+++ b/src/librbd/CMakeLists.txt
-@@ -34,6 +34,7 @@ set(librbd_internal_srcs
- cache/ObjectCacherObjectDispatch.cc
- cache/SharedPersistentObjectCacherObjectDispatch.cc
- cache/SharedPersistentObjectCacher.cc
-+ cache/SharedPersistentObjectCacherFile.cc
- deep_copy/ImageCopyRequest.cc
- deep_copy/MetadataCopyRequest.cc
- deep_copy/ObjectCopyRequest.cc
-@@ -124,7 +125,6 @@ set(librbd_internal_srcs
- trash/MoveRequest.cc
- watcher/Notifier.cc
- watcher/RewatchRequest.cc
-- ${CMAKE_SOURCE_DIR}/src/os/CacheStore/SyncFile.cc
- ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc)
-
- add_library(rbd_api STATIC librbd.cc)
-diff --git a/src/librbd/cache/SharedPersistentObjectCacher.cc b/src/librbd/cache/SharedPersistentObjectCacher.cc
-index a849260..260567c 100644
---- a/src/librbd/cache/SharedPersistentObjectCacher.cc
-+++ b/src/librbd/cache/SharedPersistentObjectCacher.cc
-@@ -19,7 +19,7 @@ SharedPersistentObjectCacher<I>::SharedPersistentObjectCacher(I *image_ctx, std:
- : m_image_ctx(image_ctx), m_cache_path(cache_path),
- m_file_map_lock("librbd::cache::SharedObjectCacher::filemaplock") {
- auto *cct = m_image_ctx->cct;
--
-+ ldout(cct, 20) << dendl;
- }
-
- template <typename I>
-@@ -40,7 +40,7 @@ int SharedPersistentObjectCacher<I>::read_object(std::string oid, ceph::bufferli
- std::string cache_file_name = m_image_ctx->data_ctx.get_pool_name() + oid;
-
- //TODO(): make a cache for cachefile fd
-- os::CacheStore::SyncFile* target_cache_file = new os::CacheStore::SyncFile(cct, cache_file_name);
-+ SyncFile* target_cache_file = new SyncFile(cct, cache_file_name);
- target_cache_file->open();
-
- int ret = target_cache_file->read_object_from_file(read_data, offset, length);
-diff --git a/src/librbd/cache/SharedPersistentObjectCacher.h b/src/librbd/cache/SharedPersistentObjectCacher.h
-index d108a05..af04e63 100644
---- a/src/librbd/cache/SharedPersistentObjectCacher.h
-+++ b/src/librbd/cache/SharedPersistentObjectCacher.h
-@@ -6,7 +6,7 @@
-
- #include "include/buffer_fwd.h"
- #include "include/int_types.h"
--#include "os/CacheStore/SyncFile.h"
-+#include "SharedPersistentObjectCacherFile.h"
- #include "common/Mutex.h"
- #include <vector>
- #include <map>
-@@ -31,9 +31,9 @@ public:
-
- private:
- ImageCtxT *m_image_ctx;
-- std::map<std::string, os::CacheStore::SyncFile*> file_map;
-- Mutex m_file_map_lock;
- std::string m_cache_path;
-+ Mutex m_file_map_lock;
-+ std::map<std::string, SyncFile*> file_map;
-
- };
-
-diff --git a/src/librbd/cache/SharedPersistentObjectCacherFile.cc b/src/librbd/cache/SharedPersistentObjectCacherFile.cc
-new file mode 100644
-index 0000000..75a3053
---- /dev/null
-+++ b/src/librbd/cache/SharedPersistentObjectCacherFile.cc
-@@ -0,0 +1,114 @@
-+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
-+// vim: ts=8 sw=2 smarttab
-+
-+#include "SharedPersistentObjectCacherFile.h"
-+#include "include/Context.h"
-+#include "common/dout.h"
-+#include "common/WorkQueue.h"
-+#include "librbd/ImageCtx.h"
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <aio.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <utility>
-+
-+#define dout_subsys ceph_subsys_rbd
-+#undef dout_prefix
-+#define dout_prefix *_dout << "librbd::cache::SyncFile: " << this << " " \
-+ << __func__ << ": "
-+
-+namespace librbd {
-+namespace cache {
-+
-+SyncFile::SyncFile(CephContext *cct, const std::string &name)
-+ : cct(cct) {
-+ m_name = cct->_conf->get_val<std::string>("rbd_shared_cache_path") + "/rbd_cache." + name;
-+ ldout(cct, 20) << "file path=" << m_name << dendl;
-+}
-+
-+SyncFile::~SyncFile() {
-+ // TODO force proper cleanup
-+ if (m_fd != -1) {
-+ ::close(m_fd);
-+ }
-+}
-+
-+void SyncFile::open(Context *on_finish) {
-+ while (true) {
-+ m_fd = ::open(m_name.c_str(), O_CREAT | O_DIRECT | O_NOATIME | O_RDWR | O_SYNC,
-+ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
-+ if (m_fd == -1) {
-+ int r = -errno;
-+ if (r == -EINTR) {
-+ continue;
-+ }
-+ on_finish->complete(r);
-+ return;
-+ }
-+ break;
-+ }
-+
-+ on_finish->complete(0);
-+}
-+
-+void SyncFile::open() {
-+ while (true)
-+ {
-+ m_fd = ::open(m_name.c_str(), O_CREAT | O_NOATIME | O_RDWR | O_SYNC,
-+ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
-+ if (m_fd == -1)
-+ {
-+ int r = -errno;
-+ if (r == -EINTR) {
-+ continue;
-+ }
-+ return;
-+ }
-+ break;
-+ }
-+}
-+
-+void SyncFile::read(uint64_t offset, uint64_t length, ceph::bufferlist *bl, Context *on_finish) {
-+ on_finish->complete(read_object_from_file(bl, offset, length));
-+}
-+
-+void SyncFile::write(uint64_t offset, ceph::bufferlist &&bl, bool fdatasync, Context *on_finish) {
-+ on_finish->complete(write_object_to_file(bl, bl.length()));
-+}
-+
-+int SyncFile::write_object_to_file(ceph::bufferlist read_buf, uint64_t object_len) {
-+
-+ ldout(cct, 20) << "cache file name:" << m_name
-+ << ", length:" << object_len << dendl;
-+
-+ // TODO(): aio
-+ int ret = pwrite(m_fd, read_buf.c_str(), object_len, 0);
-+ if(ret < 0) {
-+ lderr(cct)<<"write file fail:" << std::strerror(errno) << dendl;
-+ return ret;
-+ }
-+
-+ return ret;
-+}
-+
-+int SyncFile::read_object_from_file(ceph::bufferlist* read_buf, uint64_t object_off, uint64_t object_len) {
-+
-+ ldout(cct, 20) << "offset:" << object_off
-+ << ", length:" << object_len << dendl;
-+
-+ bufferptr buf(object_len);
-+
-+ // TODO(): aio
-+ int ret = pread(m_fd, buf.c_str(), object_len, object_off);
-+ if(ret < 0) {
-+ lderr(cct)<<"read file fail:" << std::strerror(errno) << dendl;
-+ return ret;
-+ }
-+ read_buf->append(std::move(buf));
-+
-+ return ret;
-+}
-+
-+} // namespace cache
-+} // namespace librbd
-diff --git a/src/librbd/cache/SharedPersistentObjectCacherFile.h b/src/librbd/cache/SharedPersistentObjectCacherFile.h
-new file mode 100644
-index 0000000..ccbe730
---- /dev/null
-+++ b/src/librbd/cache/SharedPersistentObjectCacherFile.h
-@@ -0,0 +1,74 @@
-+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
-+// vim: ts=8 sw=2 smarttab
-+
-+#ifndef CEPH_LIBRBD_CACHE_STORE_SYNC_FILE
-+#define CEPH_LIBRBD_CACHE_STORE_SYNC_FILE
-+
-+#include "include/buffer_fwd.h"
-+#include <sys/mman.h>
-+#include <string>
-+
-+struct Context;
-+struct ContextWQ;
-+class CephContext;
-+
-+namespace librbd {
-+
-+namespace cache {
-+
-+class SyncFile {
-+public:
-+ SyncFile(CephContext *cct, const std::string &name);
-+ ~SyncFile();
-+
-+ // TODO use IO queue instead of individual commands so operations can be
-+ // submitted in batch
-+
-+ // TODO use scatter/gather API
-+
-+ void open(Context *on_finish);
-+
-+ // ##
-+ void open();
-+ bool try_open();
-+ void close(Context *on_finish);
-+ void remove(Context *on_finish);
-+
-+ void read(uint64_t offset, uint64_t length, ceph::bufferlist *bl, Context *on_finish);
-+
-+ void write(uint64_t offset, ceph::bufferlist &&bl, bool fdatasync, Context *on_finish);
-+
-+ void discard(uint64_t offset, uint64_t length, bool fdatasync, Context *on_finish);
-+
-+ void truncate(uint64_t length, bool fdatasync, Context *on_finish);
-+
-+ void fsync(Context *on_finish);
-+
-+ void fdatasync(Context *on_finish);
-+
-+ uint64_t filesize();
-+
-+ int load(void** dest, uint64_t filesize);
-+
-+ int remove();
-+
-+ // ##
-+ int write_object_to_file(ceph::bufferlist read_buf, uint64_t object_len);
-+ int read_object_from_file(ceph::bufferlist* read_buf, uint64_t object_off, uint64_t object_len);
-+
-+private:
-+ CephContext *cct;
-+ std::string m_name;
-+ int m_fd = -1;
-+
-+ int write(uint64_t offset, const ceph::bufferlist &bl, bool fdatasync);
-+ int read(uint64_t offset, uint64_t length, ceph::bufferlist *bl);
-+ int discard(uint64_t offset, uint64_t length, bool fdatasync);
-+ int truncate(uint64_t length, bool fdatasync);
-+ int fdatasync();
-+};
-+
-+} // namespace cache
-+} // namespace librbd
-+
-+#endif // CEPH_LIBRBD_CACHE_STORE_SYNC_FILE
-diff --git a/src/librbd/cache/SharedPersistentObjectCacherObjectDispatch.cc b/src/librbd/cache/SharedPersistentObjectCacherObjectDispatch.cc
-index 90d886c..2aa5cad 100644
---- a/src/librbd/cache/SharedPersistentObjectCacherObjectDispatch.cc
-+++ b/src/librbd/cache/SharedPersistentObjectCacherObjectDispatch.cc
-@@ -52,7 +52,7 @@ void SharedPersistentObjectCacherObjectDispatch<I>::init() {
- ldout(cct, 20) << "parent image: setup SRO cache client = " << dendl;
-
- std::string controller_path = "/tmp/rbd_shared_readonly_cache_demo";
-- m_cache_client = new CacheClient(io_service, controller_path.c_str(),
-+ m_cache_client = new rbd::cache::CacheClient(io_service, controller_path.c_str(),
- ([&](std::string s){client_handle_request(s);}));
-
- int ret = m_cache_client->connect();
-@@ -120,7 +120,7 @@ void SharedPersistentObjectCacherObjectDispatch<I>::client_handle_request(std::s
- auto cct = m_image_ctx->cct;
- ldout(cct, 20) << dendl;
-
-- rbdsc_req_type_t *io_ctx = (rbdsc_req_type_t*)(msg.c_str());
-+ rbd::cache::rbdsc_req_type_t *io_ctx = (rbd::cache::rbdsc_req_type_t*)(msg.c_str());
-
- switch (io_ctx->type) {
- case RBDSC_REGISTER_REPLY: {
-diff --git a/src/librbd/cache/SharedPersistentObjectCacherObjectDispatch.h b/src/librbd/cache/SharedPersistentObjectCacherObjectDispatch.h
-index 1ede804..200688f 100644
---- a/src/librbd/cache/SharedPersistentObjectCacherObjectDispatch.h
-+++ b/src/librbd/cache/SharedPersistentObjectCacherObjectDispatch.h
-@@ -115,7 +115,7 @@ private:
- ImageCtxT* m_image_ctx;
-
- void client_handle_request(std::string msg);
-- CacheClient *m_cache_client = nullptr;
-+ rbd::cache::CacheClient *m_cache_client = nullptr;
- boost::asio::io_service io_service;
- };
-
-diff --git a/src/os/CacheStore/SyncFile.cc b/src/os/CacheStore/SyncFile.cc
-deleted file mode 100644
-index 5352bde..0000000
---- a/src/os/CacheStore/SyncFile.cc
-+++ /dev/null
-@@ -1,110 +0,0 @@
--// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
--// vim: ts=8 sw=2 smarttab
--
--#include "os/CacheStore/SyncFile.h"
--#include "include/Context.h"
--#include "common/dout.h"
--#include "common/WorkQueue.h"
--#include "librbd/ImageCtx.h"
--#include <sys/types.h>
--#include <sys/stat.h>
--#include <aio.h>
--#include <errno.h>
--#include <fcntl.h>
--#include <utility>
--
--#define dout_subsys ceph_subsys_rbd
--#undef dout_prefix
--#define dout_prefix *_dout << "librbd::file::SyncFile: " << this << " " \
-- << __func__ << ": "
--
--namespace os {
--namespace CacheStore {
--
--SyncFile::SyncFile(CephContext *cct, const std::string &name)
-- : cct(cct)
--{
-- m_name = cct->_conf->get_val<std::string>("rbd_shared_cache_path") + "/rbd_cache." + name;
-- ldout(cct, 20) << "file path=" << m_name << dendl;
--}
--
--SyncFile::~SyncFile()
--{
-- // TODO force proper cleanup
-- if (m_fd != -1) {
-- ::close(m_fd);
-- }
--}
--
--void SyncFile::open(Context *on_finish)
--{
-- while (true) {
-- m_fd = ::open(m_name.c_str(), O_CREAT | O_DIRECT | O_NOATIME | O_RDWR | O_SYNC,
-- S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
-- if (m_fd == -1) {
-- int r = -errno;
-- if (r == -EINTR) {
-- continue;
-- }
-- on_finish->complete(r);
-- return;
-- }
-- break;
-- }
--
-- on_finish->complete(0);
--}
--
--void SyncFile::open()
--{
-- while (true)
-- {
-- m_fd = ::open(m_name.c_str(), O_CREAT | O_NOATIME | O_RDWR | O_SYNC,
-- S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
-- if (m_fd == -1)
-- {
-- int r = -errno;
-- if (r == -EINTR) {
-- continue;
-- }
-- return;
-- }
-- break;
-- }
--}
--
--int SyncFile::write_object_to_file(ceph::bufferlist read_buf, uint64_t object_len) {
--
-- ldout(cct, 20) << "cache file name:" << m_name
-- << ", length:" << object_len << dendl;
--
-- // TODO(): aio
-- int ret = pwrite(m_fd, read_buf.c_str(), object_len, 0);
-- if(ret < 0) {
-- lderr(cct)<<"write file fail:" << std::strerror(errno) << dendl;
-- return ret;
-- }
--
-- return ret;
--}
--
--int SyncFile::read_object_from_file(ceph::bufferlist* read_buf, uint64_t object_off, uint64_t object_len) {
--
-- ldout(cct, 20) << "offset:" << object_off
-- << ", length:" << object_len << dendl;
--
-- bufferptr buf(object_len);
--
-- // TODO(): aio
-- int ret = pread(m_fd, buf.c_str(), object_len, object_off);
-- if(ret < 0) {
-- lderr(cct)<<"read file fail:" << std::strerror(errno) << dendl;
-- return ret;
-- }
-- read_buf->append(std::move(buf));
--
-- return ret;
--}
--
--} // namespace CacheStore
--} // namespace os
-diff --git a/src/os/CacheStore/SyncFile.h b/src/os/CacheStore/SyncFile.h
-deleted file mode 100644
-index 81602ce..0000000
---- a/src/os/CacheStore/SyncFile.h
-+++ /dev/null
-@@ -1,74 +0,0 @@
--// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
--// vim: ts=8 sw=2 smarttab
--
--#ifndef CEPH_LIBOS_CACHE_STORE_SYNC_FILE
--#define CEPH_LIBOS_CACHE_STORE_SYNC_FILE
--
--#include "include/buffer_fwd.h"
--#include <sys/mman.h>
--#include <string>
--
--struct Context;
--struct ContextWQ;
--class CephContext;
--
--namespace os {
--
--namespace CacheStore {
--
--class SyncFile {
--public:
-- SyncFile(CephContext *cct, const std::string &name);
-- ~SyncFile();
--
-- // TODO use IO queue instead of individual commands so operations can be
-- // submitted in batch
--
-- // TODO use scatter/gather API
--
-- void open(Context *on_finish);
--
-- // ##
-- void open();
-- bool try_open();
-- void close(Context *on_finish);
-- void remove(Context *on_finish);
--
-- void read(uint64_t offset, uint64_t length, ceph::bufferlist *bl, Context *on_finish);
--
-- void write(uint64_t offset, ceph::bufferlist &&bl, bool fdatasync, Context *on_finish);
--
-- void discard(uint64_t offset, uint64_t length, bool fdatasync, Context *on_finish);
--
-- void truncate(uint64_t length, bool fdatasync, Context *on_finish);
--
-- void fsync(Context *on_finish);
--
-- void fdatasync(Context *on_finish);
--
-- uint64_t filesize();
--
-- int load(void** dest, uint64_t filesize);
--
-- int remove();
--
-- // ##
-- int write_object_to_file(ceph::bufferlist read_buf, uint64_t object_len);
-- int read_object_from_file(ceph::bufferlist* read_buf, uint64_t object_off, uint64_t object_len);
--
--private:
-- CephContext *cct;
-- std::string m_name;
-- int m_fd = -1;
--
-- int write(uint64_t offset, const ceph::bufferlist &bl, bool fdatasync);
-- int read(uint64_t offset, uint64_t length, ceph::bufferlist *bl);
-- int discard(uint64_t offset, uint64_t length, bool fdatasync);
-- int truncate(uint64_t length, bool fdatasync);
-- int fdatasync();
--};
--
--} // namespace CacheStore
--} // namespace os
--
--#endif // CEPH_LIBOS_CACHE_STORE_SYNC_FILE
-diff --git a/src/tools/rbd_cache/CMakeLists.txt b/src/tools/rbd_cache/CMakeLists.txt
-index 08eae60..597d802 100644
---- a/src/tools/rbd_cache/CMakeLists.txt
-+++ b/src/tools/rbd_cache/CMakeLists.txt
-@@ -1,5 +1,5 @@
- add_executable(rbd-cache
-- ${CMAKE_SOURCE_DIR}/src/os/CacheStore/SyncFile.cc
-+ ${CMAKE_SOURCE_DIR}/src/librbd/cache/SharedPersistentObjectCacherFile.cc
- ObjectCacheStore.cc
- CacheController.cc
- main.cc)
-diff --git a/src/tools/rbd_cache/CacheController.cc b/src/tools/rbd_cache/CacheController.cc
-index c914358..e73ba25 100644
---- a/src/tools/rbd_cache/CacheController.cc
-+++ b/src/tools/rbd_cache/CacheController.cc
-@@ -1,7 +1,7 @@
- // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
- // vim: ts=8 sw=2 smarttab
-
--#include "CacheController.hpp"
-+#include "CacheController.h"
-
- #define dout_context g_ceph_context
- #define dout_subsys ceph_subsys_rbd_cache
-@@ -9,6 +9,8 @@
- #define dout_prefix *_dout << "rbd::cache::CacheController: " << this << " " \
- << __func__ << ": "
-
-+namespace rbd {
-+namespace cache {
-
- class ThreadPoolSingleton : public ThreadPool {
- public:
-@@ -103,3 +105,8 @@ void CacheController::handle_request(uint64_t sesstion_id, std::string msg){
-
- }
- }
-+
-+} // namespace rbd
-+} // namespace cache
-+
-+
-diff --git a/src/tools/rbd_cache/CacheController.h b/src/tools/rbd_cache/CacheController.h
-new file mode 100644
-index 0000000..0e3abc1
---- /dev/null
-+++ b/src/tools/rbd_cache/CacheController.h
-@@ -0,0 +1,55 @@
-+#ifndef CACHE_CONTROLLER_H
-+#define CACHE_CONTROLLER_H
-+
-+#include <thread>
-+
-+#include "common/Formatter.h"
-+#include "common/admin_socket.h"
-+#include "common/debug.h"
-+#include "common/errno.h"
-+#include "common/ceph_context.h"
-+#include "common/Mutex.h"
-+#include "common/WorkQueue.h"
-+#include "include/rados/librados.hpp"
-+#include "include/rbd/librbd.h"
-+#include "include/assert.h"
-+#include "librbd/ImageCtx.h"
-+#include "librbd/ImageState.h"
-+
-+#include "CacheControllerSocket.hpp"
-+#include "ObjectCacheStore.h"
-+
-+
-+using boost::asio::local::stream_protocol;
-+
-+namespace rbd {
-+namespace cache {
-+
-+class CacheController {
-+ public:
-+ CacheController(CephContext *cct, const std::vector<const char*> &args);
-+ ~CacheController();
-+
-+ int init();
-+
-+ int shutdown();
-+
-+ void handle_signal(int sinnum);
-+
-+ void run();
-+
-+ void handle_request(uint64_t sesstion_id, std::string msg);
-+
-+ private:
-+ boost::asio::io_service io_service;
-+ CacheServer *m_cache_server;
-+ std::vector<const char*> m_args;
-+ CephContext *m_cct;
-+ ObjectCacheStore *m_object_cache_store;
-+ ContextWQ* pcache_op_work_queue;
-+};
-+
-+} // namespace rbd
-+} // namespace cache
-+
-+#endif
-diff --git a/src/tools/rbd_cache/CacheController.hpp b/src/tools/rbd_cache/CacheController.hpp
-deleted file mode 100644
-index 97113e4..0000000
---- a/src/tools/rbd_cache/CacheController.hpp
-+++ /dev/null
-@@ -1,49 +0,0 @@
--#ifndef CACHE_CONTROLLER_H
--#define CACHE_CONTROLLER_H
--
--#include <thread>
--
--#include "common/Formatter.h"
--#include "common/admin_socket.h"
--#include "common/debug.h"
--#include "common/errno.h"
--#include "common/ceph_context.h"
--#include "common/Mutex.h"
--#include "common/WorkQueue.h"
--#include "include/rados/librados.hpp"
--#include "include/rbd/librbd.h"
--#include "include/assert.h"
--#include "librbd/ImageCtx.h"
--#include "librbd/ImageState.h"
--
--#include "CacheControllerSocket.hpp"
--#include "ObjectCacheStore.h"
--
--
--using boost::asio::local::stream_protocol;
--
--class CacheController {
-- public:
-- CacheController(CephContext *cct, const std::vector<const char*> &args);
-- ~CacheController();
--
-- int init();
--
-- int shutdown();
--
-- void handle_signal(int sinnum);
--
-- void run();
--
-- void handle_request(uint64_t sesstion_id, std::string msg);
--
-- private:
-- boost::asio::io_service io_service;
-- CacheServer *m_cache_server;
-- std::vector<const char*> m_args;
-- CephContext *m_cct;
-- ObjectCacheStore *m_object_cache_store;
-- ContextWQ* pcache_op_work_queue;
--};
--
--#endif
-diff --git a/src/tools/rbd_cache/CacheControllerSocket.hpp b/src/tools/rbd_cache/CacheControllerSocket.hpp
-index 6e1a743..967af1d 100644
---- a/src/tools/rbd_cache/CacheControllerSocket.hpp
-+++ b/src/tools/rbd_cache/CacheControllerSocket.hpp
-@@ -17,6 +17,9 @@
-
- using boost::asio::local::stream_protocol;
-
-+namespace rbd {
-+namespace cache {
-+
- class session : public std::enable_shared_from_this<session> {
- public:
- session(uint64_t session_id, boost::asio::io_service& io_service, ProcessMsg processmsg)
-@@ -122,4 +125,7 @@ private:
- std::map<uint64_t, session_ptr> session_map;
- };
-
-+} // namespace cache
-+} // namespace rbd
-+
- #endif
-diff --git a/src/tools/rbd_cache/CacheControllerSocketClient.hpp b/src/tools/rbd_cache/CacheControllerSocketClient.hpp
-index 8e61aa9..57be78e 100644
---- a/src/tools/rbd_cache/CacheControllerSocketClient.hpp
-+++ b/src/tools/rbd_cache/CacheControllerSocketClient.hpp
-@@ -13,6 +13,9 @@
-
- using boost::asio::local::stream_protocol;
-
-+namespace rbd {
-+namespace cache {
-+
- class CacheClient {
- public:
- CacheClient(boost::asio::io_service& io_service,
-@@ -128,4 +131,6 @@ public:
- bool connected = false;
- };
-
-+} // namespace cache
-+} // namespace rbd
- #endif
-diff --git a/src/tools/rbd_cache/CacheControllerSocketCommon.h b/src/tools/rbd_cache/CacheControllerSocketCommon.h
-index e253bb1..ab89155 100644
---- a/src/tools/rbd_cache/CacheControllerSocketCommon.h
-+++ b/src/tools/rbd_cache/CacheControllerSocketCommon.h
-@@ -12,6 +12,9 @@
- #define RBDSC_LOOKUP_REPLY 0X16
- #define RBDSC_READ_RADOS 0X16
-
-+namespace rbd {
-+namespace cache {
-+
- typedef std::function<void(uint64_t, std::string)> ProcessMsg;
- typedef std::function<void(std::string)> ClientProcessMsg;
- typedef uint8_t rbdsc_req_type;
-@@ -40,4 +43,6 @@ struct rbdsc_req_type_t {
- }
- };
-
-+} // namespace cache
-+} // namespace rbd
- #endif
-diff --git a/src/tools/rbd_cache/ObjectCacheStore.cc b/src/tools/rbd_cache/ObjectCacheStore.cc
-index 90b407c..9572a1a 100644
---- a/src/tools/rbd_cache/ObjectCacheStore.cc
-+++ b/src/tools/rbd_cache/ObjectCacheStore.cc
-@@ -9,6 +9,8 @@
- #define dout_prefix *_dout << "rbd::cache::ObjectCacheStore: " << this << " " \
- << __func__ << ": "
-
-+namespace rbd {
-+namespace cache {
-
- ObjectCacheStore::ObjectCacheStore(CephContext *cct, ContextWQ* work_queue)
- : m_cct(cct), m_work_queue(work_queue),
-@@ -77,7 +79,7 @@ int ObjectCacheStore::do_promote(std::string pool_name, std::string object_name)
- }
-
- // persistent to cache
-- os::CacheStore::SyncFile cache_file(m_cct, cache_file_name);
-+ librbd::cache::SyncFile cache_file(m_cct, cache_file_name);
- cache_file.open();
- ret = cache_file.write_object_to_file(read_buf, object_size);
-
-@@ -145,3 +147,6 @@ int ObjectCacheStore::promote_object(librados::IoCtx* ioctx, std::string object_
- return ret;
-
- }
-+
-+} // namespace cache
-+} // namespace rbd
-diff --git a/src/tools/rbd_cache/ObjectCacheStore.h b/src/tools/rbd_cache/ObjectCacheStore.h
-index 12f8399..a81beea 100644
---- a/src/tools/rbd_cache/ObjectCacheStore.h
-+++ b/src/tools/rbd_cache/ObjectCacheStore.h
-@@ -12,11 +12,14 @@
- #include "include/rbd/librbd.h"
- #include "librbd/ImageCtx.h"
- #include "librbd/ImageState.h"
--#include "os/CacheStore/SyncFile.h"
-+#include "librbd/cache/SharedPersistentObjectCacherFile.h"
-
- using librados::Rados;
- using librados::IoCtx;
-
-+namespace rbd {
-+namespace cache {
-+
- typedef shared_ptr<librados::Rados> RadosRef;
- typedef shared_ptr<librados::IoCtx> IoCtxRef;
-
-@@ -59,7 +62,9 @@ class ObjectCacheStore
-
- std::map<std::string, librados::IoCtx*> m_ioctxs;
-
-- os::CacheStore::SyncFile *m_cache_file;
-+ librbd::cache::SyncFile *m_cache_file;
- };
-
-+} // namespace rbd
-+} // namespace cache
- #endif
-diff --git a/src/tools/rbd_cache/main.cc b/src/tools/rbd_cache/main.cc
-index 336a581..a7c5b64 100644
---- a/src/tools/rbd_cache/main.cc
-+++ b/src/tools/rbd_cache/main.cc
-@@ -7,11 +7,11 @@
- #include "common/errno.h"
- #include "global/global_init.h"
- #include "global/signal_handler.h"
--#include "CacheController.hpp"
-+#include "CacheController.h"
-
- #include <vector>
-
--CacheController *cachectl = nullptr;
-+rbd::cache::CacheController *cachectl = nullptr;
-
- void usage() {
- std::cout << "usage: cache controller [options...]" << std::endl;
-@@ -64,7 +64,7 @@ int main(int argc, const char **argv)
- // disable unnecessary librbd cache
- g_ceph_context->_conf->set_val_or_die("rbd_cache", "false");
-
-- cachectl = new CacheController(g_ceph_context, cmd_args);
-+ cachectl = new rbd::cache::CacheController(g_ceph_context, cmd_args);
- int r = cachectl->init();
- if (r < 0) {
- std::cerr << "failed to initialize: " << cpp_strerror(r) << std::endl;
---
-2.7.4
-