WARNING: at fs/ext4/extents.c:4434 ext4_convert_unwritten_extent
From: Dmitry Monakhov <hidden>
Date: 2012-09-28 17:23:33
I've got this on 286'th MOUNT_OPTIONS=-onoload
We assumes that we are protected from ENOSPC during
ext4_convert_unwritten_extents() by passing EXT4_GET_BLOCKS_PRE_IO
on submitting AIO which split extent via ext4_split_unwritten_extents()
But this is not sufficient:
submit_aio Fallocate worker
->ext4_map_blocks(lblk, len)
->ext4_ext_map_blocks( )
file: U1---------------------U2|_____EOF
->ext4_split_unwritten_extents
file: U1------U1|U2---len----U2|_____EOF
->ext4_fallocate(lblk, len+len2)
->ext4_map_blocks()
->ext4_ext_map_blocks()
U2: Grows
file: U1-------U1|U2----len+len2--U2|__EOF
worker_tread
->ext4_end_io_work
->ext4_convert_unwritten_extents
->ext4_ext_handle_uninitialized_extents
## Discover that new split required in order to get:
file: U1-------U1|U2----len----U2|U3--len2--U2__EOF
This procedure fail with ENOSPC