kernel_optimize_test/fs/ext4
Darrick J. Wong db9ee22036 jbd2: fix descriptor block size handling errors with journal_csum
It turns out that there are some serious problems with the on-disk
format of journal checksum v2.  The foremost is that the function to
calculate descriptor tag size returns sizes that are too big.  This
causes alignment issues on some architectures and is compounded by the
fact that some parts of jbd2 use the structure size (incorrectly) to
determine the presence of a 64bit journal instead of checking the
feature flags.

Therefore, introduce journal checksum v3, which enlarges the
descriptor block tag format to allow for full 32-bit checksums of
journal blocks, fix the journal tag function to return the correct
sizes, and fix the jbd2 recovery code to use feature flags to
determine 64bitness.

Add a few function helpers so we don't have to open-code quite so
many pieces.

Switching to a 16-byte block size was found to increase journal size
overhead by a maximum of 0.1%, to convert a 32-bit journal with no
checksumming to a 32-bit journal with checksum v3 enabled.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reported-by: TR Reardon <thomas_reardon@hotmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@vger.kernel.org
2014-08-28 22:22:29 -04:00
..
acl.c ext2/3/4: use generic posix ACL infrastructure 2014-01-25 23:58:19 -05:00
acl.h ext2/3/4: use generic posix ACL infrastructure 2014-01-25 23:58:19 -05:00
balloc.c ext4: remove metadata reservation checks 2014-07-15 06:02:38 -04:00
bitmap.c ext4: Checksum the block bitmap properly with bigalloc enabled 2012-10-22 00:34:32 -04:00
block_validity.c fs/ext4: use rbtree postorder iteration helper instead of opencoding 2014-01-23 16:37:03 -08:00
dir.c ext4: check inline directory before converting 2014-07-28 13:06:26 -04:00
ext4_extents.h ext4: rename uninitialized extents to unwritten 2014-04-20 23:45:47 -04:00
ext4_jbd2.c ext4: make local functions static 2014-05-12 10:50:23 -04:00
ext4_jbd2.h ext4: make local functions static 2014-05-12 10:50:23 -04:00
ext4.h ext4: move i_size,i_disksize update routines to helper function 2014-08-23 17:48:28 -04:00
extents_status.c ext4: fix a potential deadlock in __ext4_es_shrink() 2014-07-12 15:32:24 -04:00
extents_status.h ext4: add ext4_es_store_pblock_status() 2014-02-19 20:15:15 -05:00
extents.c ext4: fix transaction issues for ext4_fallocate and ext_zero_range 2014-08-27 18:40:00 -04:00
file.c ext4: remove readpage() check in ext4_mmap_file() 2014-07-15 09:56:19 -04:00
fsync.c ext4: Fix fsync error handling after filesystem abort 2013-06-12 22:38:04 -04:00
hash.c ext4: reduce one "if" comparison in ext4_dirhash() 2013-02-01 22:33:21 -05:00
ialloc.c ext4: fix potential null pointer dereference in ext4_free_inode 2014-07-12 16:11:42 -04:00
indirect.c ext4: fix punch hole on files with indirect mapping 2014-07-15 06:03:38 -04:00
inline.c ext4: check inline directory before converting 2014-07-28 13:06:26 -04:00
inode.c ext4: update i_disksize coherently with block allocation on error path 2014-08-28 22:20:41 -04:00
ioctl.c ext4: clean up error handling in swap_inode_boot_loader() 2014-02-17 20:44:36 -05:00
Kconfig ext4: fix Kconfig documentation for CONFIG_EXT4_DEBUG 2013-04-21 20:32:03 -04:00
Makefile ext4: Remove CONFIG_EXT4_FS_XATTR 2012-12-10 16:30:43 -05:00
mballoc.c ext4: fix BUG_ON in mb_free_blocks() 2014-08-23 17:47:28 -04:00
mballoc.h ext4: remove unused ac_ex_scanned 2014-02-20 13:32:10 -05:00
migrate.c ext4: add i_data_sem sanity check 2014-07-27 22:28:15 -04:00
mmp.c ext4: make local functions static 2014-05-12 10:50:23 -04:00
move_extent.c ext4: fix incorrect locking in move_extent_per_page 2014-07-27 22:32:27 -04:00
namei.c ext4: propagate errors up to ext4_find_entry()'s callers 2014-08-23 17:47:19 -04:00
page-io.c Clean ups and miscellaneous bug fixes, in particular for the new 2014-06-08 13:03:35 -07:00
resize.c Clean ups and miscellaneous bug fixes, in particular for the new 2014-06-08 13:03:35 -07:00
super.c jbd2: fix descriptor block size handling errors with journal_csum 2014-08-28 22:22:29 -04:00
symlink.c ext4: Remove CONFIG_EXT4_FS_XATTR 2012-12-10 16:30:43 -05:00
truncate.h
xattr_security.c
xattr_trusted.c
xattr_user.c
xattr.c ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access 2014-05-12 22:06:43 -04:00
xattr.h ext4: each filesystem creates and uses its own mb_cache 2014-03-18 19:24:49 -04:00