ext4: Split uninitialized extents for direct I/O
authorMingming Cao <cmm@us.ibm.com>
Mon, 28 Sep 2009 19:49:08 +0000 (15:49 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 28 Sep 2009 19:49:08 +0000 (15:49 -0400)
commit0031462b5b392f90d17f1d75abb795883c44e969
treee8323861b8dede0f3ddbfc8324d650bf1f4fd74b
parent9f0ccfd8e07d61b413e6536ffa02fbf60d2e20d8
ext4: Split uninitialized extents for direct I/O

When writing into an unitialized extent via direct I/O, and the direct
I/O doesn't exactly cover the unitialized extent, split the extent
into uninitialized and initialized extents before submitting the I/O.
This avoids needing to deal with an ENOSPC error in the end_io
callback that gets used for direct I/O.

When the IO is complete, the written extent will be marked as initialized.

Singed-Off-By: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/ext4_extents.h
fs/ext4/extents.c
fs/ext4/inode.c
fs/ext4/migrate.c
fs/ext4/move_extent.c