e2fsprogs and blocks outside i_size

Aneesh Kumar K.V
2008-07-18T12:11:38Z

Hi Ted,

With fallocate FALLOC_FL_KEEP_SIZE option, when we write to prealloc
space and if we hit ENOSPC when trying to insert the extent,
we actually zero out the extent. That means we can have blocks
outside i_size for an inode. I guess e2fsck currently doesn't
handle this. Or should we fix kernel to update i_size to the
right value if we do a zero out of the extent ?

With fallocate if the prealloc area is small we also aggressively zeroout.
This was needed so that a random write pattern on falloc area doesn't
results in too many extents. That also can result in the above
error on fsck.

-aneesh