]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
libext2fs: Fix various bugs from the metadata checksum integration
authorDarrick J. Wong <djwong@us.ibm.com>
Fri, 30 Sep 2011 19:38:43 +0000 (12:38 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 1 Oct 2011 01:28:12 +0000 (21:28 -0400)
Fix several minor errors in structure definitions, the byteswap code,
and Makefiles that result from merging the crc32c and initial parts of
the metadata checksumming patchset.

Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/Makefile.in
lib/ext2fs/ext2fs.h
lib/ext2fs/swapfs.c

index c2bfb70d6fceb18444cd41d5dbe1fa01aa570b00..3de9f8756da4af2bee7162e9ed00703b7e71b930 100644 (file)
@@ -398,7 +398,7 @@ clean::
                tst_bitops tst_types tst_icount tst_super_size tst_csum \
                ext2_tdbtool mkjournal debug_cmds.c \
                ../libext2fs.a ../libext2fs_p.a ../libext2fs_chk.a \
-               crc32c_table.h
+               crc32c_table.h gen_crc32ctable tst_crc32c
 
 mostlyclean:: clean
 distclean:: clean
index 203d222be88594491ae773d08a8dfde9a511c182..357bf60f7d19e531af2df2f0956b631640fe7e9a 100644 (file)
@@ -916,8 +916,8 @@ extern int ext2fs_super_and_bgd_loc(ext2_filsys fs,
 extern void ext2fs_update_dynamic_rev(ext2_filsys fs);
 
 /* crc32c.c */
-extern __u32 crc32c_be(__u32 crc, unsigned char const *p, size_t len);
-extern __u32 crc32c_le(__u32 crc, unsigned char const *p, size_t len);
+extern __u32 ext2fs_crc32c_be(__u32 crc, unsigned char const *p, size_t len);
+extern __u32 ext2fs_crc32c_le(__u32 crc, unsigned char const *p, size_t len);
 
 /* csum.c */
 extern void ext2fs_group_desc_csum_set(ext2_filsys fs, dgrp_t group);
index 79624722b0eac35c350f5d674bdf607443d912c1..7c99373c3f2bfdfc513d95588e07c02b55581239 100644 (file)
@@ -260,7 +260,7 @@ void ext2fs_swap_inode_full(ext2_filsys fs, struct ext2_inode_large *t,
                t->osd2.linux2.l_i_gid_high =
                  ext2fs_swab16 (f->osd2.linux2.l_i_gid_high);
                t->osd2.linux2.l_i_checksum_lo =
-                       ext2fs_swab32(f->osd2.linux2.l_i_checksum_lo);
+                       ext2fs_swab16(f->osd2.linux2.l_i_checksum_lo);
                break;
        case EXT2_OS_HURD:
                t->osd1.hurd1.h_i_translator =
@@ -294,21 +294,19 @@ void ext2fs_swap_inode_full(ext2_filsys fs, struct ext2_inode_large *t,
                return;
        }
 
-       if (extra_isize >= 2)
+       if (extra_isize >= 4)
                t->i_checksum_hi = ext2fs_swab16(f->i_checksum_hi);
-       if (extra_isize >= 6)
-               t->i_checksum_hi = ext2fs_swab32(f->i_checksum_hi);
-       if (extra_isize >= 10)
+       if (extra_isize >= 8)
                t->i_ctime_extra = ext2fs_swab32(f->i_ctime_extra);
-       if (extra_isize >= 14)
+       if (extra_isize >= 12)
                t->i_mtime_extra = ext2fs_swab32(f->i_mtime_extra);
-       if (extra_isize >= 18)
+       if (extra_isize >= 16)
                t->i_atime_extra = ext2fs_swab32(f->i_atime_extra);
-       if (extra_isize >= 22)
+       if (extra_isize >= 20)
                t->i_crtime = ext2fs_swab32(f->i_crtime);
-       if (extra_isize >= 26)
+       if (extra_isize >= 24)
                t->i_crtime_extra = ext2fs_swab32(f->i_crtime_extra);
-       if (extra_isize >= 30)
+       if (extra_isize >= 28)
                t->i_version_hi = ext2fs_swab32(f->i_version_hi);
 
        i = sizeof(struct ext2_inode) + extra_isize + sizeof(__u32);