From 34ad5bf8595437e3d48ecf6e89c4e45a079d6f0e Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Fri, 12 Feb 2010 14:32:11 -0800 Subject: [PATCH] objectcacher: use trimtrunc read/write ops --- src/client/Client.cc | 2 ++ src/osdc/ObjectCacher.cc | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index ec4c070b8ca72..fdbe7b4e1874c 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -357,6 +357,7 @@ void Client::update_inode_file_bits(Inode *in, dout(10) << "truncate_seq " << in->truncate_seq << " -> " << truncate_seq << dendl; in->truncate_seq = truncate_seq; + in->oset.truncate_seq = truncate_seq; } } if (truncate_seq >= in->truncate_seq && @@ -364,6 +365,7 @@ void Client::update_inode_file_bits(Inode *in, dout(10) << "truncate_size " << in->truncate_size << " -> " << truncate_size << dendl; in->truncate_size = truncate_size; + in->oset.truncate_size = truncate_size; } // be careful with size, mtime, atime diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc index 4e6c4df63fd0b..52f1067597370 100644 --- a/src/osdc/ObjectCacher.cc +++ b/src/osdc/ObjectCacher.cc @@ -434,10 +434,13 @@ void ObjectCacher::bh_read(BufferHead *bh) // finisher C_ReadFinish *onfinish = new C_ReadFinish(this, bh->ob->get_soid(), bh->start(), bh->length()); + ObjectSet *oset = bh->ob->oset; + // go - objecter->read(bh->ob->get_oid(), bh->ob->get_layout(), + objecter->read_trunc(bh->ob->get_oid(), bh->ob->get_layout(), bh->start(), bh->length(), bh->ob->get_snap(), &onfinish->bl, 0, + oset->truncate_size, oset->truncate_seq, onfinish); } @@ -525,10 +528,13 @@ void ObjectCacher::bh_write(BufferHead *bh) C_WriteAck *onack = new C_WriteAck(this, bh->ob->get_soid(), bh->start(), bh->length()); C_WriteCommit *oncommit = new C_WriteCommit(this, bh->ob->get_soid(), bh->start(), bh->length()); + ObjectSet *oset = bh->ob->oset; + // go - tid_t tid = objecter->write(bh->ob->get_oid(), bh->ob->get_layout(), + tid_t tid = objecter->write_trunc(bh->ob->get_oid(), bh->ob->get_layout(), bh->start(), bh->length(), bh->snapc, bh->bl, bh->last_write, 0, + oset->truncate_size, oset->truncate_seq, onack, oncommit); // set bh last_write_tid @@ -537,7 +543,7 @@ void ObjectCacher::bh_write(BufferHead *bh) bh->ob->last_write_tid = tid; bh->last_write_tid = tid; if (commit_set_callback) - bh->ob->oset->uncommitted.push_back(&bh->ob->uncommitted_item); + oset->uncommitted.push_back(&bh->ob->uncommitted_item); mark_tx(bh); } @@ -1085,9 +1091,10 @@ int ObjectCacher::atomic_sync_readx(OSDRead *rd, ObjectSet *oset, Mutex& lock) Mutex flock("ObjectCacher::atomic_sync_readx flock 1"); Cond cond; bool done = false; - objecter->read(rd->extents[0].oid, rd->extents[0].layout, + objecter->read_trunc(rd->extents[0].oid, rd->extents[0].layout, rd->extents[0].offset, rd->extents[0].length, rd->snap, rd->bl, 0, + oset->truncate_size, oset->truncate_seq, new C_SafeCond(&flock, &cond, &done)); // block @@ -1165,7 +1172,8 @@ int ObjectCacher::atomic_sync_writex(OSDWrite *wr, ObjectSet *oset, Mutex& lock) Mutex flock("ObjectCacher::atomic_sync_writex flock"); Cond cond; bool done = false; - objecter->sg_write(wr->extents, wr->snapc, wr->bl, wr->mtime, 0, + objecter->sg_write_trunc(wr->extents, wr->snapc, wr->bl, wr->mtime, 0, + oset->truncate_size, oset->truncate_seq, new C_SafeCond(&flock, &cond, &done), 0); // block -- 2.39.5