diff options
author | robi <robi> | 2010-08-07 18:42:31 +0000 |
---|---|---|
committer | robi <robi> | 2010-08-07 18:42:31 +0000 |
commit | bdb8f3d78f14005c420e064589cd14dcd9c9eff4 (patch) | |
tree | 2fbdbf5086bd02f496b2baf305f0f3769c7615fd | |
parent | e7e7cbc6501ba93f184d78e324c7fc5ad533918c (diff) |
Bug 017423
-rw-r--r-- | src/inode.c | 20 |
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) |