summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobi <robi>2010-08-07 18:42:31 +0000
committerrobi <robi>2010-08-07 18:42:31 +0000
commitbdb8f3d78f14005c420e064589cd14dcd9c9eff4 (patch)
tree2fbdbf5086bd02f496b2baf305f0f3769c7615fd
parente7e7cbc6501ba93f184d78e324c7fc5ad533918c (diff)
Bug 017423
-rw-r--r--src/inode.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/inode.c b/src/inode.c
index d4a14df..9f8b393 100644
--- a/src/inode.c
+++ b/src/inode.c
@@ -789,6 +789,26 @@ struct ring_buf* get_j_inode_list(struct ext2_super_block *es, ext2_ino_t inode_
same_size = item->inode->i_size;
same_link_count = item->inode->i_links_count;
}
+
+// check for the real filesystem inode
+// if not delete, we add also this inode
+
+ if ( ext2fs_read_inode_full(current_fs, inode_nr, (struct ext2_inode*)inode_buf, pos.size))
+ goto errout;
+ inode_pointer = (struct ext2_inode*) inode_buf ;
+ if(! inode_pointer->i_dtime){
+ item = r_item_add(buf);
+ if ( ! item){
+ fprintf(stderr,"Error: can not allocate memory for inode\n");
+ goto errout;
+ }
+ memcpy(item->inode, inode_buf, pos.size);
+ item->transaction.start = item->transaction.end = 0;
+#ifdef DEBUG
+ fprintf(stdout,"*;");
+#endif
+ }
+
} // else-tree ? count==0
if (buf->count == 0)