e2fsprogs/lib/ext2fs
Darrick J. Wong d36b957b34 libext2fs: don't always read backup group descriptors on a 1k-block meta_bg fs
On a filesystem with 1K blocks and meta_bg enabled, opening a
filesystem with automatic superblock detection tries to compensate for
the fact that the superblock lives in block 1.  However, the method by
which this is done is later misinterpreted to mean "read the backup
group descriptors", which is not what we want in this case.

Therefore, in ext2fs_open3() separate the 'group zero' adjustment into
its own variable so that we don't get fed backup group descriptors
when we try to load meta_bg group descriptors.

Furthermore, enhance ext2fs_descriptor_block_loc2() to perform its own
group zero correction.  The other caller of this function neglects to
do any group-zero correction of their own, so this fixes them too.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2014-01-11 13:58:15 -05:00
..
tdb Update to latest samba tdb library before LGPLv3 change 2008-02-17 17:35:54 -05:00
Makefile.in configure: fix --with-diet-libc 2014-01-05 22:58:16 -05:00
Makefile.pq Many files: 1997-11-14 05:23:04 +00:00
alloc.c Fix 32-bit overflow problems: dgrp_t * s_blocks_per_group 2013-01-05 10:14:11 -05:00
alloc_sb.c build: quiet build warnings for "gcc -Wall" 2013-01-27 22:29:01 -05:00
alloc_stats.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
alloc_tables.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
badblocks.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
bb_compat.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
bb_inode.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
bitmaps.c libext2fs: add default_bitmap_type to the ext2_filsys structure 2011-12-18 00:28:43 -05:00
bitops.c libext2fs: fix gcc -Wall warnings 2013-05-19 18:50:10 -04:00
bitops.h libext2fs: add explicit casts to bitops.h 2013-12-02 22:24:12 -05:00
blkmap64_ba.c libext2fs: implement fast find_first_zero() for bitarray bitmaps. 2012-03-26 10:36:24 -07:00
blkmap64_rb.c libext2fs: remove redundant code in rb_print_stats() 2014-01-07 09:10:24 -05:00
blknum.c debugfs, e2fsck: fix s_desc_size handling 2013-12-24 22:50:19 -05:00
block.c libext2fs: fix gcc -Wall warnings 2013-05-19 18:50:10 -04:00
bmap.c Clean up sparse warnings 2013-12-16 18:56:36 -05:00
bmap64.h libext2fs: Implement ext2fs_find_first_zero_generic_bmap(). 2012-03-25 18:55:14 -04:00
bmove.c libext2fs: ext2fs_[set_]file_acl_block needs to check for 64-bit feature flag 2011-10-16 20:46:49 -04:00
brel.h e2fsprogs: fix inode and block relocation functions to use blk64_t 2013-10-07 09:57:43 -04:00
brel_ma.c e2fsprogs: fix inode and block relocation functions to use blk64_t 2013-10-07 09:57:43 -04:00
check_desc.c e2fsck: verify s_desc_size is power-of-two value 2013-12-23 16:03:46 -05:00
closefs.c e2fsck: verify s_desc_size is power-of-two value 2013-12-23 16:03:46 -05:00
crc16.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
crc16.h Fix compiling under diet libc 2008-09-12 09:10:39 -04:00
crc32c.c libext2fs: fix gcc -Wall warnings 2013-05-19 18:50:10 -04:00
crc32c_defs.h libext2fs: move #include "ext2fs.h" from crc32c_defs.h to crc32c.c 2011-10-03 22:49:45 -04:00
csum.c libext2fs: make ext2fs_group_desc_csum return 0 if meta_csum not enabled 2014-01-07 09:10:24 -05:00
dblist.c Clean up sparse warnings 2013-12-16 18:56:36 -05:00
dblist_dir.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
dir_iterate.c Clean up sparse warnings 2013-12-16 18:56:36 -05:00
dirblock.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
dirhash.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
dosio.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
dosio.h libe2p, libext2fs: Update file copyright permission states to match COPYING 2010-05-17 23:04:39 -04:00
dupfs.c libext2fs: ext2fs_dup_handle should not alias MMP buffers 2013-09-09 10:39:33 -04:00
e2image.h e2image: only skip writing zero blocks when writing to a new file 2013-12-26 00:21:08 -05:00
expanddir.c libext2fs: don't update the summary counts when doing implied cluster allocation 2013-12-15 23:50:54 -05:00
ext2_err.et.in libext2fs: fix "a" vs "an" in the error catalog 2013-12-12 12:42:32 -05:00
ext2_ext_attr.h Fix gcc -Wall complaints in libext2fs 2006-11-14 23:14:12 -05:00
ext2_fs.h e2fsck: verify s_desc_size is power-of-two value 2013-12-23 16:03:46 -05:00
ext2_io.h libext2fs: factor out I/O buffer allocation 2012-05-07 14:41:49 -04:00
ext2_types.h.in build: use long long for __u64 by default 2013-12-15 22:10:09 -05:00
ext2fs.h libext2fs: don't always read backup group descriptors on a 1k-block meta_bg fs 2014-01-11 13:58:15 -05:00
ext2fs.pc.in Change pkg-config files so that both <et/com_err.h> and <com_err.h> work 2012-05-14 12:45:54 -04:00
ext2fsP.h ext2fs: quiet compiler warnings 2013-12-15 23:26:31 -05:00
ext3_extents.h libe2p, libext2fs: Update file copyright permission states to match COPYING 2010-05-17 23:04:39 -04:00
ext_attr.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
extent.c Clean up sparse warnings 2013-12-16 18:56:36 -05:00
fiemap.h Merge branch 'maint' into next 2010-06-07 12:42:40 -04:00
fileio.c Clean up sparse warnings 2013-12-16 18:56:36 -05:00
finddev.c libext2fs: enforce a max nested link count in ext2fs_find_block_device() 2011-11-19 23:11:20 -05:00
flushb.c libext2fs: check return values 2013-12-12 13:14:52 -05:00
freefs.c libext2fs: fix some memory leaks with image file handling 2013-12-02 14:52:31 -05:00
gen_bitmap.c libext2fs: add 32-bit compat code for ext2fs_find_first_zero_generic_bmap() 2012-04-09 14:29:13 -04:00
gen_bitmap64.c libext2fs: fix memory leaks (on error paths) 2013-12-12 13:16:59 -05:00
gen_crc32ctable.c libext2fs: Add crc32c implementation for metadata checksumming 2011-09-15 23:46:51 -04:00
get_pathname.c Fix gcc -Wall nitpicks 2012-04-05 12:13:05 -07:00
getsectsize.c libext2fs: refactor Direct I/O alignment requirement calculations 2012-05-07 13:25:44 -04:00
getsize.c ext2fs, blkid: localize environment-specific variables 2012-11-26 09:34:20 -05:00
i_block.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
icount.c Save and restore umask around calls to mkstemp() 2014-01-09 15:18:44 -05:00
imager.c libext2fs: check return values 2013-12-12 13:14:52 -05:00
ind_block.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
initialize.c debugfs, e2fsck: fix s_desc_size handling 2013-12-24 22:50:19 -05:00
inline.c tests: don't consider "make check" a compiler error 2012-12-29 17:13:24 -05:00
inode.c e2fsprogs: fix blk_t <- blk64_t assignment mismatches 2013-10-07 09:51:48 -04:00
inode_io.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
io_manager.c libext2fs: factor out I/O buffer allocation 2012-05-07 14:41:49 -04:00
irel.h e2fsprogs: fix inode and block relocation functions to use blk64_t 2013-10-07 09:57:43 -04:00
irel_ma.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
ismounted.c mke2fs: disallow creating FS on a loop mounted file with no option 2013-12-16 00:48:54 -05:00
jfs_compat.h e2fsck: Add support to check journal checksums 2008-06-06 23:38:38 -04:00
jfs_dat.h Remove trailing whitespace for the entire source tree 2008-08-27 23:07:54 -04:00
jfs_user.h Move linux/jbd.h to ext2fs/kernel-jbd.h, to avoid using the 2001-12-23 19:33:51 -05:00
kernel-jbd.h Use ext2fs_cpu_to_be32() instead of cpu_to_be32() in kernel-jbd.h 2013-06-16 18:58:40 -04:00
kernel-list.h ext2fs,blkid: delete unused LIST_HEAD() macro 2013-12-15 23:26:39 -05:00
link.c libext2fs: stop iterating dirents when done linking 2013-10-23 19:29:20 -04:00
llseek.c libext2fs: fix ext2fs_llseek on i386 2013-01-24 23:04:01 -05:00
lookup.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
mkdir.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
mkjournal.c libext2fs: don't update the summary counts when doing implied cluster allocation 2013-12-15 23:50:54 -05:00
mmp.c Clean up sparse warnings 2013-12-16 18:56:36 -05:00
namei.c libext2fs: make symlinks safe for 64bit blocks and extents 2013-12-12 12:48:39 -05:00
native.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
newdir.c libext2fs: fix memory leaks (on error paths) 2013-12-12 13:16:59 -05:00
nt_io.c libe2p, libext2fs: Update file copyright permission states to match COPYING 2010-05-17 23:04:39 -04:00
openfs.c libext2fs: don't always read backup group descriptors on a 1k-block meta_bg fs 2014-01-11 13:58:15 -05:00
progress.c mke2fs: fix progress suppression to make regression tests reliable 2012-09-22 21:26:48 -04:00
punch.c Clean up sparse warnings 2013-12-16 18:56:36 -05:00
qcow2.c libext2fs: fix potential memory leak in qcow2_write_raw_image() 2014-01-05 22:58:16 -05:00
qcow2.h e2image: Add support for qcow2 format 2011-05-18 11:51:06 -04:00
rbtree.c libext2fs: fix gcc -Wall warnings 2013-05-19 18:50:10 -04:00
rbtree.h libext2fs: fix gcc -Wall warnings 2013-05-19 18:50:10 -04:00
read_bb.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
read_bb_file.c libext2fs: reject 64bit badblocks numbers 2013-10-23 19:56:21 -04:00
res_gdt.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
rw_bitmaps.c libext2fs: fix gcc -Wall warnings 2013-05-19 18:50:10 -04:00
swapfs.c debugfs, e2fsck: fix s_desc_size handling 2013-12-24 22:50:19 -05:00
symlink.c libext2fs: make symlinks safe for 64bit blocks and extents 2013-12-12 12:48:39 -05:00
tdb.c libext2fs: change getpagesize to sysconf 2012-01-09 21:19:48 -05:00
tdb.h libext2fs: don't leak tdb_null out of the shared library namespace 2011-11-05 14:55:30 -04:00
tdbtool.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
test_io.c Try to use secure_getenv() in preference to __secure_getenv() 2013-06-16 14:34:59 -04:00
tst_badblocks.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
tst_bitmaps.c build: quiet some "gcc -Wall" compiler warnings 2012-12-29 17:39:45 -05:00
tst_bitmaps_cmd.ct libext2fs: improve testing coverage of tst_bitmaps 2012-04-09 14:29:47 -04:00
tst_bitmaps_cmds libext2fs: add ext2fs_bitcount() function 2012-11-28 19:01:43 -05:00
tst_bitmaps_exp libext2fs: add ext2fs_bitcount() function 2012-11-28 19:01:43 -05:00
tst_bitops.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
tst_byteswap.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
tst_fs_struct.c tst_fs_struct: add program to help check ABI compatibility of ext2fs_filsys 2011-11-25 21:16:38 -05:00
tst_getsectsize.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
tst_getsize.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
tst_inode_size.c Allow e2fsprogs to be built using the clang (LLVM) frontend 2012-09-09 21:35:39 -04:00
tst_iscan.c libext2fs: fix printf conversion spec in tst_iscan.c 2013-12-02 23:37:08 -05:00
tst_super_size.c Allow e2fsprogs to be built using the clang (LLVM) frontend 2012-09-09 21:35:39 -04:00
tst_types.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
undo_io.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
unix_io.c Use consistent e2fsprogs-standard types 2014-01-05 22:58:16 -05:00
unlink.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
valid_blk.c libext2fs: ext2fs_[set_]file_acl_block needs to check for 64-bit feature flag 2011-10-16 20:46:49 -04:00
version.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
write_bb_file.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00