ext4: get rid of EXT4_GET_BLOCKS_NO_LOCK flag
authorJan Kara <jack@suse.com>
Mon, 7 Dec 2015 20:04:57 +0000 (15:04 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 7 Dec 2015 20:04:57 +0000 (15:04 -0500)
commit2dcba4781fa3842e28f47ab23056d58cd283fca6
treeb544903601f7d249b398e309cecc818c3b4a1767
parente74031fd7ed0989da8a80364b4d269a57e9c164a
ext4: get rid of EXT4_GET_BLOCKS_NO_LOCK flag

When dioread_nolock mode is enabled, we grab i_data_sem in
ext4_ext_direct_IO() and therefore we need to instruct _ext4_get_block()
not to grab i_data_sem again using EXT4_GET_BLOCKS_NO_LOCK. However
holding i_data_sem over overwrite direct IO isn't needed these days. We
have exclusion against truncate / hole punching because we increase
i_dio_count under i_mutex in ext4_ext_direct_IO() so once
ext4_file_write_iter() verifies blocks are allocated & written, they are
guaranteed to stay so during the whole direct IO even after we drop
i_mutex.

So we can just remove this locking abuse and the no longer necessary
EXT4_GET_BLOCKS_NO_LOCK flag.

Signed-off-by: Jan Kara <jack@suse.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/inode.c
include/trace/events/ext4.h