drbdadm: Support to pass force option to dump md
PATCH 1/1 drbdadm: Support to pass force option to dump md
At least till v8.9.6, drbdadm dump-md support "--force" option to dump the metadata while the device still running.
drbdmeta still able to dump but drbdadm will show "unrecognized option" to "--force"
--- user/v9/config_flags.c | 6 ++++++ user/v9/config_flags.h | 1 + user/v9/drbdadm_main.c | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-)
user/v9/config_flags.c +6 -0
@@ -1084,6 +1084,12 @@ struct context_def create_md_ctx = { { } }, }; +struct context_def dump_md_ctx = { + .fields = { + { .name ="force" , .argument_is_optional = true }, + { } }, +}; +struct context_def adjust_ctx = { .fields = { {"skip-disk" , .argument_is_optional = true },
user/v9/config_flags.h +1 -0
@@ -100,6 +100,7 @@ extern struct context_def verify_cmd_ctx;extern struct context_def device_options_ctx;extern struct context_def invalidate_ctx;extern struct context_def create_md_ctx; +extern struct context_def dump_md_ctx;extern struct context_def adjust_ctx;extern struct context_def peer_device_options_ctx;extern struct context_def handlers_ctx;
user/v9/drbdadm_main.c +1 -1
@@ -357,7 +357,7 @@ static struct adm_cmd dump_xml_cmd = {"dump-xml", adm_dump_xml, ACF1_DUMP};static struct adm_cmd create_md_cmd = {"create-md" , adm_create_md, &create_md_ctx,ACF1_MINOR_ONLY };static struct adm_cmd show_gi_cmd = {"show-gi" , adm_setup_and_meta,ACF1_PEER_DEVICE .disk_required =1 };static struct adm_cmd get_gi_cmd = {"get-gi" , adm_setup_and_meta,ACF1_PEER_DEVICE .disk_required =1 }; -static struct adm_cmd dump_md_cmd = {"dump-md" , adm_drbdmeta,ACF1_MINOR_ONLY }; +static struct adm_cmd dump_md_cmd = {"dump-md" , adm_drbdmeta, &dump_md_ctx,ACF1_MINOR_ONLY };static struct adm_cmd wipe_md_cmd = {"wipe-md" , adm_drbdmeta,ACF1_MINOR_ONLY };static struct adm_cmd apply_al_cmd = {"apply-al" , adm_drbdmeta,ACF1_MINOR_ONLY };static struct adm_cmd forget_peer_cmd = {"forget-peer" , adm_forget_peer,ACF1_DISCONNECT };
Signature · 1 line
2.12.0
Hi Nick,
Thanks! Applied.
best regards,
Phil
Am Donnerstag, 25. Jänner 2018, 07:28:49 CET schrieb Nick Wang:
Quoted 63 lines
At least till v8.9.6, drbdadm dump-md support
"--force" option to dump the metadata while
the device still running.drbdmeta still able to dump but drbdadm will
show "unrecognized option" to "--force"Signed-off-by Nick Wang <[email protected]>CC Lars Ellenberg <[email protected]>CC Roland Kammerer <[email protected]>--- user/v9/config_flags.c | 6 ++++++ user/v9/config_flags.h | 1 + user/v9/drbdadm_main.c | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-)user/v9/config_flags.c +6
-0@@ -1084,6 +1084,12 @@ struct context_def create_md_ctx = { { } }, }; +struct context_def dump_md_ctx = { + .fields = { + { .name ="force" , .argument_is_optional = true }, + { } }, +}; +struct context_def adjust_ctx = { .fields = { {"skip-disk" , .argument_is_optional = true },user/v9/config_flags.h +1
-0@@ -100,6 +100,7 @@ extern struct context_def verify_cmd_ctx;extern struct context_def device_options_ctx;extern struct context_def invalidate_ctx;extern struct context_def create_md_ctx; +extern struct context_def dump_md_ctx;extern struct context_def adjust_ctx;extern struct context_def peer_device_options_ctx;extern struct context_def handlers_ctx;user/v9/drbdadm_main.c +0
-0@@ -357,7 +357,7 @@ static struct adm_cmd dump_xml_cmd = {"dump-xml",
adm_dump_xml,ACF1_DUMP}; static structadm_cmdcreate_md_cmd= {"create-md",adm_create_md,&create_md_ctx,ACF1_MINOR_ONLY}; static structadm_cmdshow_gi_cmd= {"show-gi",adm_setup_and_meta,ACF1_PEER_DEVICE.disk_required = 1}; static structadm_cmdget_gi_cmd= {"get-gi",adm_setup_and_meta,ACF1_PEER_DEVICE.disk_required = 1}; -static structadm_cmddump_md_cmd= {"dump-md",adm_drbdmeta,ACF1_MINOR_ONLY}; +static structadm_cmddump_md_cmd= {"dump-md",adm_drbdmeta,&dump_md_ctx,ACF1_MINOR_ONLY}; static structadm_cmdwipe_md_cmd= {"wipe-md",adm_drbdmeta,ACF1_MINOR_ONLY}; static structadm_cmdapply_al_cmd= {"apply-al",adm_drbdmeta,ACF1_MINOR_ONLY}; static structadm_cmdforget_peer_cmd= {"forget-peer",adm_forget_peer,ACF1_DISCONNECT};