summaryrefslogtreecommitdiff
path: root/src/inode.c
diff options
context:
space:
mode:
authorrobi <robi>2010-08-07 18:33:14 +0000
committerrobi <robi>2010-08-07 18:33:14 +0000
commite7e7cbc6501ba93f184d78e324c7fc5ad533918c (patch)
treea8d33054b35ea05b86e560d0d1af2caea165c6a1 /src/inode.c
parent1c8b53b70d4d7e910ce619aeea2267195564da27 (diff)
enable fattr + recover unlinked file
Diffstat (limited to 'src/inode.c')
-rw-r--r--src/inode.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/inode.c b/src/inode.c
index 487ca37..d4a14df 100644
--- a/src/inode.c
+++ b/src/inode.c
@@ -378,8 +378,18 @@ void dump_inode(FILE *out, const char *prefix,
else if (LINUX_S_ISSOCK(inode->i_mode)) i_type = "socket";
else i_type = "bad type";
fprintf(out, "%sInode: %u Type: %s ", prefix, inode_num, i_type);
- fprintf(out, "%sMode: %04o Flags: 0x%x\n",
+ fprintf(out, "%sMode: %04o Flags: 0x%x ",
prefix, inode->i_mode & 0777, inode->i_flags);
+#ifdef FILE_ATTR
+ if (do_dump_blocks && inode->i_flags) {
+ fprintf(out,"[");
+ print_flags(out, inode->i_flags, 0);
+ fprintf(out,"]\n");
+ }
+ else
+#endif
+ fprintf(out,"\n");
+
if (is_large_inode && large_inode->i_extra_isize >= 24) {
fprintf(out, "%sGeneration: %u Version: 0x%08x:%08x\n",
prefix, inode->i_generation, large_inode->i_version_hi,
@@ -607,6 +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)
+ item->inode->i_links_count = 1 ;
return item;
}
}
@@ -636,6 +648,8 @@ 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)
+ item->inode->i_links_count = 1 ;
#ifdef DEBUG
printf("UTD-Inode %d\n",item->transaction.start);
#endif