diff options
author | Jan Kara <jack@suse.cz> | 2013-06-04 22:44:36 +0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2013-06-04 22:44:36 +0400 |
commit | c724585b62411f7abdea5b1054b9f1e1e7c964be (patch) | |
tree | 9221ab1390c4d5f47d7eb62fce49b6beb1b82e81 /fs/ext4/page-io.c | |
parent | 38b8ff7db4d99ebfabaee81b8747877424d1cf28 (diff) | |
download | linux-c724585b62411f7abdea5b1054b9f1e1e7c964be.tar.xz |
ext4: don't wait for extent conversion in ext4_punch_hole()
We don't have to wait for extent conversion in ext4_punch_hole() as
buffered IO for the punched range has been flushed and waited upon
(thus all extent conversions for that range have completed). Also we
wait for all DIO to finish using inode_dio_wait() so there cannot be
any extent conversions pending due to direct IO.
Also remove ext4_flush_unwritten_io() since it's unused now.
Reviewed-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/page-io.c')
-rw-r--r-- | fs/ext4/page-io.c | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c index 0f65561ab5a5..6ee5bd389405 100644 --- a/fs/ext4/page-io.c +++ b/fs/ext4/page-io.c @@ -281,22 +281,6 @@ void ext4_end_io_unrsv_work(struct work_struct *work) ext4_do_flush_completed_IO(&ei->vfs_inode, &ei->i_unrsv_conversion_list); } -int ext4_flush_unwritten_io(struct inode *inode) -{ - int ret, err; - - WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex) && - !(inode->i_state & I_FREEING)); - ret = ext4_do_flush_completed_IO(inode, - &EXT4_I(inode)->i_rsv_conversion_list); - err = ext4_do_flush_completed_IO(inode, - &EXT4_I(inode)->i_unrsv_conversion_list); - if (!ret) - ret = err; - ext4_unwritten_wait(inode); - return ret; -} - ext4_io_end_t *ext4_init_io_end(struct inode *inode, gfp_t flags) { ext4_io_end_t *io = kmem_cache_zalloc(io_end_cachep, flags); |