• Dmitry Monakhov's avatar
    ext4: serialize unlocked dio reads with truncate · 1c9114f9
    Dmitry Monakhov authored
    Current serialization will works only for DIO which holds
    i_mutex, but nonlocked DIO following race is possible:
    dio_nolock_read_task            truncate_task
    				 #alloc truncated blocks
    				 #to other inode
    In order to serialize with unlocked DIO reads we have to
    rearrange wait sequence
    1) update i_size first
    2) if i_size about to be reduced wait for outstanding DIO requests
    3) and only after that truncate inode blocks
    Reviewed-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarDmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>