summaryrefslogtreecommitdiff
path: root/src/inode.c
diff options
context:
space:
mode:
authorrobi <robi>2010-08-09 01:28:33 +0000
committerrobi <robi>2010-08-09 01:28:33 +0000
commit496517231f4c1542de0575a7a5d4737e6ce530cd (patch)
treedab5641c026a9d2cbd470b97aa356fc3bb687e0f /src/inode.c
parentbdb8f3d78f14005c420e064589cd14dcd9c9eff4 (diff)
Bug 017425
Diffstat (limited to 'src/inode.c')
-rw-r--r--src/inode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/inode.c b/src/inode.c
index 9f8b393..57ca9a1 100644
--- a/src/inode.c
+++ b/src/inode.c
@@ -617,7 +617,8 @@ r_item* get_last_undel_inode(struct ring_buf* buf){
#ifdef DEBUG
printf("UD-Inode %d\n",item->transaction.start);
#endif
- if(! item->inode->i_links_count)
+ if((! item->inode->i_links_count)&&(item->inode->i_ctime)
+ &&(item->inode->i_mode))
item->inode->i_links_count = 1 ;
return item;
}
@@ -648,7 +649,7 @@ r_item* get_last_undel_inode(struct ring_buf* buf){
}
// if (item->inode->i_generation != generation)
// buf->reuse_flag = 1;
- if(! item->inode->i_links_count)
+ if((! item->inode->i_links_count)&&(item->inode->i_ctime)&&(item->inode->i_mode))
item->inode->i_links_count = 1 ;
#ifdef DEBUG
printf("UTD-Inode %d\n",item->transaction.start);
@@ -796,7 +797,7 @@ struct ring_buf* get_j_inode_list(struct ext2_super_block *es, ext2_ino_t 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){
+ if((! inode_pointer->i_dtime) && inode_pointer->i_ctime){
item = r_item_add(buf);
if ( ! item){
fprintf(stderr,"Error: can not allocate memory for inode\n");