Support --io option for vitastor-disk dump-journal/write-journal

This commit is contained in:
Vitaliy Filippov
2026-06-17 00:39:28 +03:00
parent 1be51f903c
commit e9d053e30f
+20
View File
@@ -317,9 +317,13 @@ int main(int argc, char *argv[])
else else
{ {
// First argument is an OSD device - take metadata layout parameters from it // First argument is an OSD device - take metadata layout parameters from it
if (self.options["io"] != "")
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
if (self.dump_load_check_superblock(self.dsk.journal_device)) if (self.dump_load_check_superblock(self.dsk.journal_device))
return 1; return 1;
} }
if (self.options["io"] != "")
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
return self.dump_journal(); return self.dump_journal();
} }
else if (!strcmp(cmd[0], "write-journal")) else if (!strcmp(cmd[0], "write-journal"))
@@ -340,6 +344,8 @@ int main(int argc, char *argv[])
else else
{ {
// First argument is an OSD device - take metadata layout parameters from it // First argument is an OSD device - take metadata layout parameters from it
if (self.options["io"] != "")
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
if (self.dump_load_check_superblock(self.new_journal_device)) if (self.dump_load_check_superblock(self.new_journal_device))
return 1; return 1;
self.new_journal_device = self.dsk.journal_device; self.new_journal_device = self.dsk.journal_device;
@@ -366,6 +372,10 @@ int main(int argc, char *argv[])
{ {
self.dsk.csum_block_size = stoull_full(self.options["csum_block_size"], 0); self.dsk.csum_block_size = stoull_full(self.options["csum_block_size"], 0);
} }
if (self.options["io"] != "")
{
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
}
return self.write_json_journal(entries); return self.write_json_journal(entries);
} }
else if (!strcmp(cmd[0], "dump-meta")) else if (!strcmp(cmd[0], "dump-meta"))
@@ -382,6 +392,8 @@ int main(int argc, char *argv[])
{ {
// First argument is an OSD device - take metadata layout parameters from it // First argument is an OSD device - take metadata layout parameters from it
self.dsk.meta_device = cmd[1]; self.dsk.meta_device = cmd[1];
if (self.options["io"] != "")
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
if (self.dump_load_check_superblock(self.dsk.meta_device)) if (self.dump_load_check_superblock(self.dsk.meta_device))
return 1; return 1;
} }
@@ -398,6 +410,8 @@ int main(int argc, char *argv[])
self.dsk.calc_lengths(); self.dsk.calc_lengths();
self.dsk.close_all(); self.dsk.close_all();
} }
if (self.options["io"] != "")
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
return self.dump_meta(); return self.dump_meta();
} }
else if (!strcmp(cmd[0], "write-meta")) else if (!strcmp(cmd[0], "write-meta"))
@@ -412,6 +426,8 @@ int main(int argc, char *argv[])
{ {
// First argument is an OSD device - take metadata layout parameters from it // First argument is an OSD device - take metadata layout parameters from it
self.new_meta_device = cmd[1]; self.new_meta_device = cmd[1];
if (self.options["io"] != "")
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
if (self.dump_load_check_superblock(self.new_meta_device)) if (self.dump_load_check_superblock(self.new_meta_device))
return 1; return 1;
self.new_meta_device = self.dsk.meta_device; self.new_meta_device = self.dsk.meta_device;
@@ -422,6 +438,8 @@ int main(int argc, char *argv[])
{ {
// Parse all OSD options from cmdline // Parse all OSD options from cmdline
self.dsk.parse_config(self.options); self.dsk.parse_config(self.options);
if (self.options["io"] != "")
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
self.dsk.open_data(); self.dsk.open_data();
self.dsk.open_meta(); self.dsk.open_meta();
self.dsk.open_journal(); self.dsk.open_journal();
@@ -438,6 +456,8 @@ int main(int argc, char *argv[])
fprintf(stderr, "Invalid JSON: %s\n", json_err.c_str()); fprintf(stderr, "Invalid JSON: %s\n", json_err.c_str());
return 1; return 1;
} }
if (self.options["io"] != "")
self.dsk.data_io = self.dsk.meta_io = self.dsk.journal_io = self.options["io"];
return self.write_json_meta(meta); return self.write_json_meta(meta);
} }
else if (!strcmp(cmd[0], "resize")) else if (!strcmp(cmd[0], "resize"))