diff options
author | Ilya Yanok <yanok@emcraft.com> | 2008-11-13 19:49:31 +0300 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2008-12-09 23:38:21 +0100 |
commit | f73846956778a7dfee83403ef9747aff77198848 (patch) | |
tree | 59d9260bd44fe2281a3d358e22972d36487a6894 /fs | |
parent | 1113cb764b3da256ef8a1f9539f4efbe221ff3c4 (diff) | |
download | u-boot-imx-f73846956778a7dfee83403ef9747aff77198848.zip u-boot-imx-f73846956778a7dfee83403ef9747aff77198848.tar.gz u-boot-imx-f73846956778a7dfee83403ef9747aff77198848.tar.bz2 |
jffs2: fix searching for latest version in jffs2_1pass_list_inodes()
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 <avn@emcraft.com>
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Diffstat (limited to 'fs')
-rw-r--r-- | 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 920d2fd..35743fc 100644 --- a/fs/jffs2/jffs2_1pass.c +++ b/fs/jffs2/jffs2_1pass.c @@ -940,9 +940,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); @@ -976,6 +974,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); |