• J
    ext4: get rid of EXT4_GET_BLOCKS_NO_LOCK flag · 2dcba478
    Jan Kara 提交于
    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: NJan Kara <jack@suse.com>
    Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
    2dcba478
ext4.h 62.8 KB