summaryrefslogtreecommitdiff
path: root/src
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
parent1c8b53b70d4d7e910ce619aeea2267195564da27 (diff)
enable fattr + recover unlinked file
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.in4
-rw-r--r--src/inode.c16
-rw-r--r--src/recover.c1
3 files changed, 17 insertions, 4 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index 8df23e3..7391b9f 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -240,9 +240,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign src/Makefile
+ $(AUTOMAKE) --gnu src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
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
diff --git a/src/recover.c b/src/recover.c
index 8d6e382..daad216 100644
--- a/src/recover.c
+++ b/src/recover.c
@@ -50,7 +50,6 @@
#define ACL_ERROR 0x01
-//#define FILE_ATTR
#ifdef FILE_ATTR
#include "e2p/e2p.h"
//#FLAGS_MODIFIABLE = EXT2_NOATIME_FL | EXT2_SYNC_FL | EXT2_DIRSYNC_FL | EXT2_APPEND_FL | EXT2_COMPR_FL | EXT2_NODUMP_FL |