diff options
author | Theodore Ts'o <tytso@mit.edu> | 2019-11-05 16:21:09 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2019-11-05 16:21:09 -0500 |
commit | 8d0d47ea1640b23678306c007ccc813b5b930af4 (patch) | |
tree | 79c4be5111bb6c1cbf495ea8d98e008da46cb6c2 /fs/ext4/extents.c | |
parent | a6d4040846bff49c7e870cee5693245f87f2cfce (diff) | |
parent | 378f32bab3714f04c4e0c3aee4129f6703805550 (diff) | |
download | lwn-8d0d47ea1640b23678306c007ccc813b5b930af4.tar.gz lwn-8d0d47ea1640b23678306c007ccc813b5b930af4.zip |
Merge branch 'mb/dio' into master
Diffstat (limited to 'fs/ext4/extents.c')
-rw-r--r-- | fs/ext4/extents.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 59f741bedf2f..0e8708b77da6 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -1765,16 +1765,9 @@ ext4_can_extents_be_merged(struct inode *inode, struct ext4_extent *ex1, */ if (ext1_ee_len + ext2_ee_len > EXT_INIT_MAX_LEN) return 0; - /* - * The check for IO to unwritten extent is somewhat racy as we - * increment i_unwritten / set EXT4_STATE_DIO_UNWRITTEN only after - * dropping i_data_sem. But reserved blocks should save us in that - * case. - */ + if (ext4_ext_is_unwritten(ex1) && - (ext4_test_inode_state(inode, EXT4_STATE_DIO_UNWRITTEN) || - atomic_read(&EXT4_I(inode)->i_unwritten) || - (ext1_ee_len + ext2_ee_len > EXT_UNWRITTEN_MAX_LEN))) + ext1_ee_len + ext2_ee_len > EXT_UNWRITTEN_MAX_LEN) return 0; #ifdef AGGRESSIVE_TEST if (ext1_ee_len >= 4) |