From c603ac2eb4221f90397e0a3f16fa9ae3d1244f72 Mon Sep 17 00:00:00 2001 From: sageweil Date: Thu, 12 Oct 2006 23:19:47 +0000 Subject: [PATCH] caching fixes git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@932 29311d96-e01e-0410-9327-a35deaab8ce9 --- ceph/client/FileCache.cc | 8 +++++++- ceph/osdc/ObjectCacher.h | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ceph/client/FileCache.cc b/ceph/client/FileCache.cc index a52a5ac4b76fd..b8e5c94ee32ac 100644 --- a/ceph/client/FileCache.cc +++ b/ceph/client/FileCache.cc @@ -5,6 +5,12 @@ #include "FileCache.h" #include "osdc/ObjectCacher.h" +#include "msg/Messenger.h" + +#undef dout +#define dout(x) if (x <= g_conf.debug_client) cout << g_clock.now() << " " << oc->objecter->messenger->get_myaddr() << ".filecache " +#define derr(x) if (x <= g_conf.debug_client) cout << g_clock.now() << " " << oc->objecter->messenger->get_myaddr() << ".filecache " + // flush/release/clean @@ -70,7 +76,7 @@ void FileCache::check_caps() // check callbacks map >::iterator p = caps_callbacks.begin(); while (p != caps_callbacks.end()) { - if (~(p->first) & used) { + if (used == 0 || (~(p->first) & used)) { // implemented. dout(10) << "used is " << cap_string(used) << ", caps " << cap_string(p->first) << " implemented, doing callback(s)" << endl; diff --git a/ceph/osdc/ObjectCacher.h b/ceph/osdc/ObjectCacher.h index 817f492b4caa8..b722062f2c457 100644 --- a/ceph/osdc/ObjectCacher.h +++ b/ceph/osdc/ObjectCacher.h @@ -187,9 +187,11 @@ class ObjectCacher { // ******* ObjectCacher ********* // ObjectCacher fields - private: + public: Objecter *objecter; Filer filer; + + private: Mutex& lock; hash_map objects; -- 2.39.5