linux_dsm_epyc7002/fs/ext4
Jan Kara 7d7345322d ext4: fix warning in ext4_da_update_reserve_space()
reaim workfile.dbase test easily triggers warning in
ext4_da_update_reserve_space():

EXT4-fs warning (device ram0): ext4_da_update_reserve_space:365:
ino 12, allocated 1 with only 0 reserved metadata blocks (releasing 1
blocks with reserved 9 data blocks)

The problem is that (one of) tests creates file and then randomly writes
to it with O_SYNC. That results in writing back pages of the file in
random order so we create extents for written blocks say 0, 2, 4, 6, 8
- this last allocation also allocates new block for extents. Then we
writeout block 1 so we have extents 0-2, 4, 6, 8 and we release
indirect extent block because extents fit in the inode again. Then we
writeout block 10 and we need to allocate indirect extent block again
which triggers the warning because we don't have the reservation
anymore.

Fix the problem by giving back freed metadata blocks resulting from
extent merging into inode's reservation pool.

Signed-off-by: Jan Kara <jack@suse.cz>
2013-08-17 09:36:54 -04:00
..
acl.c ext4: fix the number of credits needed for acl ops with inline data 2013-02-09 15:23:03 -05:00
acl.h fs: take the ACL checks to common code 2011-07-25 14:30:23 -04:00
balloc.c ext4: fix ext4_get_group_number() 2013-07-05 23:11:16 -04:00
bitmap.c ext4: Checksum the block bitmap properly with bigalloc enabled 2012-10-22 00:34:32 -04:00
block_validity.c ext2/3/4: delete unneeded includes of module.h 2012-01-09 13:52:10 +01:00
dir.c [readdir] convert ext4 2013-06-29 12:56:40 +04:00
ext4_extents.h ext4: mext_insert_extents should update extent block checksum 2013-04-19 14:04:12 -04:00
ext4_jbd2.c jbd2: Fix use after free after error in jbd2_journal_dirty_metadata() 2013-08-12 09:53:28 -04:00
ext4_jbd2.h ext4: use transaction reservation for extent conversion in ext4_end_io 2013-06-04 13:21:11 -04:00
ext4.h ext4: fix warning in ext4_da_update_reserve_space() 2013-08-17 09:36:54 -04:00
extents_status.c ext4: add support for extent pre-caching 2013-08-16 22:05:14 -04:00
extents_status.h ext4: cache all of an extent tree's leaf block upon reading 2013-08-16 21:23:41 -04:00
extents.c ext4: fix warning in ext4_da_update_reserve_space() 2013-08-17 09:36:54 -04:00
file.c jbd2: Fix oops in jbd2_journal_file_inode() 2013-08-16 21:19:41 -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: avoid reusing recently deleted inodes in no journal mode 2013-08-16 22:06:55 -04:00
indirect.c ext4: translate flag bits to strings in tracepoints 2013-07-01 08:12:40 -04:00
inline.c Lots of bug fixes, cleanups and optimizations. In the bug fixes 2013-07-02 09:39:34 -07:00
inode.c ext4: use unsigned int for es_status values 2013-08-16 21:22:41 -04:00
ioctl.c ext4: add support for extent pre-caching 2013-08-16 22:05:14 -04: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 warning in ext4_da_update_reserve_space() 2013-08-17 09:36:54 -04:00
mballoc.h ext4: use module parameters instead of debugfs for mballoc_debug 2013-02-09 16:28:20 -05:00
migrate.c ext4: cache all of an extent tree's leaf block upon reading 2013-08-16 21:23:41 -04:00
mmp.c ext4: mark all metadata I/O with REQ_META 2013-04-20 15:46:17 -04:00
move_extent.c ext4: cache all of an extent tree's leaf block upon reading 2013-08-16 21:23:41 -04:00
namei.c ext4: allocate delayed allocation blocks before rename 2013-08-16 22:06:53 -04:00
page-io.c ext4: rate limit printk in buffer_io_error() 2013-07-11 22:42:42 -04:00
resize.c ext4: fix corruption when online resizing a fs with 1K block size 2013-07-01 08:12:08 -04:00
super.c ext4: fix mount/remount error messages for incompatible mount options 2013-08-08 23:02:24 -04:00
symlink.c ext4: Remove CONFIG_EXT4_FS_XATTR 2012-12-10 16:30:43 -05:00
truncate.h ext4: move common truncate functions to header file 2011-06-27 19:16:04 -04:00
xattr_security.c Merge branch 'for_linus' into for_linus_merged 2012-01-10 11:54:07 -05:00
xattr_trusted.c ext2/3/4: delete unneeded includes of module.h 2012-01-09 13:52:10 +01:00
xattr_user.c ext2/3/4: delete unneeded includes of module.h 2012-01-09 13:52:10 +01:00
xattr.c ext4: fix miscellaneous big endian warnings 2013-04-09 23:59:55 -04:00
xattr.h ext4: reserve xattr index for Rich ACL support 2013-04-18 14:53:15 -04:00