diff --git a/src/disk_tool/disk_tool_meta.cpp b/src/disk_tool/disk_tool_meta.cpp index 0fa9ff9a..6ff33696 100644 --- a/src/disk_tool/disk_tool_meta.cpp +++ b/src/disk_tool/disk_tool_meta.cpp @@ -159,7 +159,7 @@ int disk_tool_t::dump_load_check_superblock(const std::string & device) { auto cfg = json_to_string_map(sb["params"].object_items()); dsk.parse_config(cfg); - dsk.data_io = dsk.meta_io = dsk.journal_io = "direct"; + dsk.data_io = dsk.meta_io = dsk.journal_io = "cached"; dsk.open_data(); dsk.open_meta(); dsk.open_journal(); diff --git a/src/disk_tool/disk_tool_prepare.cpp b/src/disk_tool/disk_tool_prepare.cpp index 31bbd9dc..a4344617 100644 --- a/src/disk_tool/disk_tool_prepare.cpp +++ b/src/disk_tool/disk_tool_prepare.cpp @@ -108,7 +108,7 @@ int disk_tool_t::prepare_one(std::map options, int is_ try { dsk.parse_config(options); - dsk.data_io = dsk.meta_io = dsk.journal_io = "direct"; + dsk.data_io = dsk.meta_io = dsk.journal_io = (options["io"] == "cached" ? "cached" : "direct"); dsk.open_data(); dsk.open_meta(); dsk.open_journal(); @@ -498,7 +498,7 @@ int disk_tool_t::get_meta_partition(std::vector & ssds, std { blockstore_disk_t dsk; dsk.parse_config(options); - dsk.data_io = dsk.meta_io = dsk.journal_io = "direct"; + dsk.data_io = dsk.meta_io = dsk.journal_io = "cached"; dsk.open_data(); dsk.open_meta(); dsk.open_journal(); @@ -508,6 +508,7 @@ int disk_tool_t::get_meta_partition(std::vector & ssds, std } catch (std::exception & e) { + dsk.close_all(); fprintf(stderr, "%s\n", e.what()); return 1; } diff --git a/src/disk_tool/disk_tool_resize.cpp b/src/disk_tool/disk_tool_resize.cpp index 60104967..cbb5b468 100644 --- a/src/disk_tool/disk_tool_resize.cpp +++ b/src/disk_tool/disk_tool_resize.cpp @@ -91,7 +91,7 @@ int disk_tool_t::resize_parse_params() try { dsk.parse_config(options); - dsk.data_io = dsk.meta_io = dsk.journal_io = "direct"; + dsk.data_io = dsk.meta_io = dsk.journal_io = "cached"; dsk.open_data(); dsk.open_meta(); dsk.open_journal();