From f2139f2d076cdd5079931c3dacdaacd784c1fae9 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 22 Apr 2008 15:57:14 -0700 Subject: [PATCH] objectcacher: dont count dirty pages as RDCACHE --- src/client/FileCache.cc | 4 ++-- src/osdc/ObjectCacher.cc | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/client/FileCache.cc b/src/client/FileCache.cc index 3ff496417b3eb..3f6a345f592d9 100644 --- a/src/client/FileCache.cc +++ b/src/client/FileCache.cc @@ -153,14 +153,14 @@ void FileCache::check_caps() while (p != caps_callbacks.end()) { if (used == 0 || (~(p->first) & used) == 0) { // implemented. - dout(10) << "used is " << cap_string(used) + dout(10) << "check_caps used is " << cap_string(used) << ", caps " << cap_string(p->first) << " implemented, doing callback(s)" << dendl; finish_contexts(p->second); map >::iterator o = p; p++; caps_callbacks.erase(o); } else { - dout(10) << "used is " << cap_string(used) + dout(10) << "check_caps used is " << cap_string(used) << ", caps " << cap_string(p->first) << " not yet implemented" << dendl; p++; } diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc index bd553aa1006b4..2b6e67dfc9a39 100644 --- a/src/osdc/ObjectCacher.cc +++ b/src/osdc/ObjectCacher.cc @@ -1259,7 +1259,13 @@ bool ObjectCacher::set_is_cached(inodeno_t ino) i != s.end(); i++) { Object *ob = *i; - if (!ob->data.empty()) return true; + for (map::iterator p = ob->data.begin(); + p != ob->data.end(); + p++) { + BufferHead *bh = p->second; + if (!bh->is_dirty() && !bh->is_tx()) + return true; + } } return false; @@ -1275,7 +1281,7 @@ bool ObjectCacher::set_is_dirty_or_committing(inodeno_t ino) i != s.end(); i++) { Object *ob = *i; - + for (map::iterator p = ob->data.begin(); p != ob->data.end(); p++) { @@ -1284,7 +1290,7 @@ bool ObjectCacher::set_is_dirty_or_committing(inodeno_t ino) return true; } } - + return false; } -- 2.39.5