ext4: use transaction reservation for extent conversion in ext4_end_io
Later we would like to clear PageWriteback bit only after extent conversion from unwritten to written extents is performed. However it is not possible to start a transaction after PageWriteback is set because that violates lock ordering (and is easy to deadlock). So we have to reserve a transaction before locking pages and sending them for IO and later we use the transaction for extent conversion from ext4_end_io(). 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>
Showing
- fs/ext4/ext4.h 9 additions, 3 deletionsfs/ext4/ext4.h
- fs/ext4/ext4_jbd2.h 3 additions, 2 deletionsfs/ext4/ext4_jbd2.h
- fs/ext4/extents.c 29 additions, 11 deletionsfs/ext4/extents.c
- fs/ext4/inode.c 20 additions, 5 deletionsfs/ext4/inode.c
- fs/ext4/page-io.c 8 additions, 3 deletionsfs/ext4/page-io.c
Loading
Please register or sign in to comment