summaryrefslogtreecommitdiff
path: root/src/common/unionfs.c
diff options
context:
space:
mode:
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);