From e672785e6fe5714991ff806c3fbc8eca1e44270b Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 27 Aug 2019 21:32:16 +0200 Subject: [PATCH] crimson/osd: PGBackend::write() alters object size now. Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/pg_backend.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/crimson/osd/pg_backend.cc b/src/crimson/osd/pg_backend.cc index 2d28ab90815..1308c2b7415 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -309,7 +309,11 @@ seastar::future<> PGBackend::write( // write arrives before trimtrunc if (os.exists && !os.oi.is_whiteout()) { txn.truncate(coll->get_cid(), - ghobject_t{os.oi.soid}, op.extent.truncate_size); + ghobject_t{os.oi.soid}, op.extent.truncate_size); + if (op.extent.truncate_size != os.oi.size) { + os.oi.size = length; + // TODO: truncate_update_size_and_usage() + } } os.oi.truncate_seq = op.extent.truncate_seq; os.oi.truncate_size = op.extent.truncate_size; @@ -324,6 +328,7 @@ seastar::future<> PGBackend::write( } else { txn.write(coll->get_cid(), ghobject_t{os.oi.soid}, offset, length, std::move(buf), op.flags); + os.oi.size = std::max(offset + length, os.oi.size); } return seastar::now(); } -- 2.39.5