We need to update i_version inside cycle to find really latest version
inside jffs2_1pass_list_inodes(). With that fixed we can use isize inside
dump_inode() instead of calling expensive jffs2_1pass_read_inode().

Signed-off-by: Alexey Neyman <[EMAIL PROTECTED]>
Signed-off-by: Ilya Yanok <[EMAIL PROTECTED]>
---
 fs/jffs2/jffs2_1pass.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c
index 58298c0..94f8468 100644
--- a/fs/jffs2/jffs2_1pass.c
+++ b/fs/jffs2/jffs2_1pass.c
@@ -937,9 +937,7 @@ static inline u32 dump_inode(struct b_lists * pL, struct 
jffs2_raw_dirent *d, st
        st.st_mtime = i->mtime;
        st.st_mode = i->mode;
        st.st_ino = i->ino;
-
-       /* neither dsize nor isize help us.. do it the long way */
-       st.st_size = jffs2_1pass_read_inode(pL, i->ino, NULL);
+       st.st_size = i->isize;
 
        dump_stat(&st, fname);
 
@@ -973,6 +971,7 @@ jffs2_1pass_list_inodes(struct b_lists * pL, u32 pino)
                                jNode = (struct jffs2_raw_inode *)
                                        get_fl_mem(b2->offset, sizeof(ojNode), 
&ojNode);
                                if (jNode->ino == jDir->ino && jNode->version 
>= i_version) {
+                                       i_version = jNode->version;
                                        if (i)
                                                put_fl_mem(i);
 
-- 
1.5.6.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to