From: Samuel Just Date: Mon, 15 Jun 2020 20:29:46 +0000 (-0700) Subject: crimson/os/seastore/cache: drop extents on close() X-Git-Tag: v16.1.0~1882^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8963a58e6e839461dc783f66e216ec0aee062300;p=ceph.git crimson/os/seastore/cache: drop extents on close() Signed-off-by: Samuel Just --- diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index a977db30db7..e5ab31c204c 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -19,13 +19,6 @@ namespace crimson::os::seastore { Cache::~Cache() { - retire_extent(root); - root.reset(); - for (auto i = dirty.begin(); i != dirty.end(); ) { - auto ptr = &*i; - dirty.erase(i++); - intrusive_ptr_release(ptr); - } for (auto &i: extents) { logger().error("~Cache: extent {} still alive", i); } @@ -188,6 +181,13 @@ Cache::mkfs_ertr::future<> Cache::mkfs(Transaction &t) Cache::close_ertr::future<> Cache::close() { + retire_extent(root); + root.reset(); + for (auto i = dirty.begin(); i != dirty.end(); ) { + auto ptr = &*i; + dirty.erase(i++); + intrusive_ptr_release(ptr); + } return close_ertr::now(); } diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index 7fa91a307b0..e3495961b1a 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -338,7 +338,7 @@ public: /** * close * - * TODO: currently a noop -- probably should be used to flush dirty blocks + * TODO: should flush dirty blocks */ using close_ertr = crimson::errorator< crimson::ct_error::input_output_error>;