Hi Michael, found two more errors, see below.
Kind regards, Stefan On Montag, 29. August 2016 10:46:45 CEST Michael Walle wrote: > All fields were accessed directly instead of using the proper byte swap > functions. Thus, ext4 write support was only usable on little-endian > architectures. Fix this. > > Signed-off-by: Michael Walle <mich...@walle.cc> > Reviewed-by: Stefan Brüns <stefan.bru...@rwth-aachen.de> > Tested-by: Stefan Brüns <stefan.bru...@rwth-aachen.de> > --- > fs/ext4/ext4_common.c | 277 > +++++++++++++++++++++++++++---------------------- fs/ext4/ext4_common.h | > 4 +- > fs/ext4/ext4_journal.c | 15 +-- > fs/ext4/ext4_journal.h | 4 +- > fs/ext4/ext4_write.c | 212 ++++++++++++++++++++----------------- > include/ext_common.h | 2 +- > 6 files changed, 285 insertions(+), 229 deletions(-) > > diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c > index e8ed30a..567350f 100644 > --- a/fs/ext4/ext4_common.c > +++ b/fs/ext4/ext4_common.c > @@ -33,20 +33,40 @@ ... > @@ -879,17 +907,17 @@ long int ext4fs_get_new_blk_no(void) > fs->curr_blkno = fs->curr_blkno + > (i * fs->blksz * 8); > fs->first_pass_bbmap++; > - bgd[i].free_blocks--; > - fs->sb->free_blocks--; > - status = ext4fs_devread((lbaint_t) > - bgd[i].block_id * > + ext4fs_bg_free_blocks_dec(&bgd[i]); > + ext4fs_sb_free_inodes_dec(fs->sb); Thats obviously wrong, should be ext4fs_sb_free_*blocks*_dec ... > + status = ext4fs_devread( > + > (lbaint_t)le32_to_cpu(bgd[i].block_id) * > fs->sect_perblk, 0, > fs->blksz, > journal_buffer); > if (status == 0) > goto fail; > if (ext4fs_log_journal(journal_buffer, > - bgd[i].block_id)) > + > le32_to_cpu(bgd[i].block_id))) > goto fail; > goto success; > } else { > @@ -923,13 +951,14 @@ restart: ... > @@ -942,19 +971,20 @@ restart: > /* journal backup */ > if (prev_bg_bitmap_index != bg_idx) { > memset(journal_buffer, '\0', fs->blksz); > - status = ext4fs_devread((lbaint_t)bgd[bg_idx].block_id > + status = ext4fs_devread( > + > (lbaint_t)le32_to_cpu(bgd[bg_idx].block_id) > * fs->sect_perblk, > 0, fs->blksz, journal_buffer); > if (status == 0) > goto fail; > if (ext4fs_log_journal(journal_buffer, > - bgd[bg_idx].block_id)) > + > le32_to_cpu(bgd[bg_idx].block_id))) > goto fail; > > prev_bg_bitmap_index = bg_idx; > } > - bgd[bg_idx].free_blocks--; > - fs->sb->free_blocks--; > + ext4fs_bg_free_blocks_dec(&bgd[bg_idx]); > + ext4fs_sb_free_inodes_dec(fs->sb); Same ... > goto success; > } > success: > @@ -975,7 +1005,7 @@ int ext4fs_get_new_inode_no(void) ... -- Stefan Brüns / Bergstraße 21 / 52062 Aachen home: +49 241 53809034 mobile: +49 151 50412019 work: +49 2405 49936-424 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot