diff options
author | Peter Rajnoha <prajnoha@redhat.com> | 2012-07-20 15:53:04 +0200 |
---|---|---|
committer | Peter Rajnoha <prajnoha@redhat.com> | 2012-07-20 15:53:04 +0200 |
commit | 5e36b86c46f04eddae2d4b1f826e1f24995b3636 (patch) | |
tree | 78aee73d59b1c7ea1198594016a28a38594e2354 /libdm/libdm-config.c | |
parent | 8d5ae472e5226f87175d51722fb5942c531bb8bb (diff) | |
download | lvm2-5e36b86c46f04eddae2d4b1f826e1f24995b3636.tar.gz |
config: fix one-node dumpconfig, add dm_config_write_one_node
A regression introduced in 2.02.89 (11e520256b3005ed813ce83f8770aaab74edef3f)
caused the lvm dumpconfig <node> to print out
the node as well as its subsequent siblings.
The information about "only_one" mode got lost.
Before this patch (just an example node):
# lvm dumpconfig global/use_lvmetad
use_lvmetad=1
thin_check_executable="/usr/sbin/thin_check"
thin_check_options="-q"
(...all nodes to the end of the section)
With this patch applied:
# lvm dumpconfig global/use_lvmetad
use_lvmetad=1
Diffstat (limited to 'libdm/libdm-config.c')
-rw-r--r-- | libdm/libdm-config.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libdm/libdm-config.c b/libdm/libdm-config.c index d9d3882f2..845749797 100644 --- a/libdm/libdm-config.c +++ b/libdm/libdm-config.c @@ -331,14 +331,15 @@ static int _write_config(const struct dm_config_node *n, int only_one, return 1; } -int dm_config_write_node(const struct dm_config_node *cn, dm_putline_fn putline, void *baton) +static int _write_node(const struct dm_config_node *cn, int only_one, + dm_putline_fn putline, void *baton) { struct output_line outline; if (!(outline.mem = dm_pool_create("config_line", 1024))) return_0; outline.putline = putline; outline.putline_baton = baton; - if (!_write_config(cn, 0, &outline, 0)) { + if (!_write_config(cn, only_one, &outline, 0)) { dm_pool_destroy(outline.mem); return_0; } @@ -346,6 +347,16 @@ int dm_config_write_node(const struct dm_config_node *cn, dm_putline_fn putline, return 1; } +int dm_config_write_one_node(const struct dm_config_node *cn, dm_putline_fn putline, void *baton) +{ + return _write_node(cn, 1, putline, baton); +} + +int dm_config_write_node(const struct dm_config_node *cn, dm_putline_fn putline, void *baton) +{ + return _write_node(cn, 0, putline, baton); +} + /* * parser |