From: Jianpeng Ma Date: Fri, 30 Jan 2015 03:36:50 +0000 (+0800) Subject: osdc: Make ObjectCahce can hanle write with DONTNEED. X-Git-Tag: v0.93~139^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3687dcbcd145fb1c9df1dd956bb732796ae67e36;p=ceph.git osdc: Make ObjectCahce can hanle write with DONTNEED. Signed-off-by: Jianpeng Ma --- diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc index a26639f9c864..95a4bda13e29 100644 --- a/src/osdc/ObjectCacher.cc +++ b/src/osdc/ObjectCacher.cc @@ -1307,6 +1307,7 @@ int ObjectCacher::writex(OSDWrite *wr, ObjectSet *oset, Mutex& wait_on_lock, utime_t now = ceph_clock_now(cct); uint64_t bytes_written = 0; uint64_t bytes_written_in_flush = 0; + bool dontneed = wr->fadvise_flags & LIBRADOS_OP_FLAG_FADVISE_DONTNEED; for (vector::iterator ex_it = wr->extents.begin(); ex_it != wr->extents.end(); @@ -1354,7 +1355,11 @@ int ObjectCacher::writex(OSDWrite *wr, ObjectSet *oset, Mutex& wait_on_lock, // ok, now bh is dirty. mark_dirty(bh); - touch_bh(bh); + if (dontneed) + bh->set_dontneed(true); + else + touch_bh(bh); + bh->last_write = now; o->try_merge_bh(bh);