ext4: Add support FALLOC_FL_INSERT_RANGE for fallocate
authorNamjae Jeon <namjae.jeon@samsung.com>
Tue, 9 Jun 2015 05:55:03 +0000 (01:55 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 9 Jun 2015 05:55:03 +0000 (01:55 -0400)
commit331573febb6a224bc50322e3670da326cb7f4cfc
treea302585d04479bea70f2c60371ff40d57db0f699
parentde92c8caf16ca84926fa31b7a5590c0fb9c0d5ca
ext4: Add support FALLOC_FL_INSERT_RANGE for fallocate

This patch implements fallocate's FALLOC_FL_INSERT_RANGE for Ext4.

1) Make sure that both offset and len are block size aligned.
2) Update the i_size of inode by len bytes.
3) Compute the file's logical block number against offset. If the computed
   block number is not the starting block of the extent, split the extent
   such that the block number is the starting block of the extent.
4) Shift all the extents which are lying between [offset, last allocated extent]
   towards right by len bytes. This step will make a hole of len bytes
   at offset.

Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Ashish Sangwan <a.sangwan@samsung.com>
fs/ext4/ext4.h
fs/ext4/extents.c
include/trace/events/ext4.h