summaryrefslogtreecommitdiff
path: root/src/common/unionfs.c
diff options
context:
space:
mode:
authorMichael Larson <slioch@slioch.vyatta.com>2010-06-24 13:07:07 -0700
committerMichael Larson <slioch@slioch.vyatta.com>2010-06-24 13:07:07 -0700
commit6debdc1d5714747936ebba4cc7e60712d7033456 (patch)
treee3607292c3b36617c77d3212951aeb0eee4e8a8e /src/common/unionfs.c
parent1ac80256404b66928c5af71f0bf655fc5897e036 (diff)
downloadvyatta-cfg-6debdc1d5714747936ebba4cc7e60712d7033456.tar.gz
vyatta-cfg-6debdc1d5714747936ebba4cc7e60712d7033456.zip
fix additional case for vyatta guard restarting under deletion of deactivated nodes.
Diffstat (limited to 'src/common/unionfs.c')
-rw-r--r--src/common/unionfs.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/common/unionfs.c b/src/common/unionfs.c
index 3f932d6..e7157c0 100644
--- a/src/common/unionfs.c
+++ b/src/common/unionfs.c
@@ -409,7 +409,12 @@ retrieve_data(char* rel_data_path, GNode *node, const char* root,
struct VyattaNode *vn = calloc(1,sizeof(struct VyattaNode));
strcpy(data_buf,dirp->d_name);
- vn->_data._operation = K_NO_OP;
+ if (op == K_DEL_OP) {
+ vn->_data._operation = K_DEL_OP;
+ }
+ else {
+ vn->_data._operation = K_NO_OP;
+ }
//create new node and insert...
vn->_data._name = data_buf;
@@ -425,7 +430,7 @@ retrieve_data(char* rel_data_path, GNode *node, const char* root,
new_node = insert_sibling_in_order(node,new_node);
//will need to enter a special recursion against the active configuration to mark nested delete nodes
- retrieve_data(new_data_path,new_node,get_adirp(),K_NO_OP);
+ retrieve_data(new_data_path,new_node,get_adirp(),vn->_data._operation);
}
else {
strcpy(data_buf,dirp->d_name);