ext4: code clean up for dio fallocate handling The ext4_debug() call in ext4_end_io_dio() (inode.c) has a should be moved after checking the io_end structure to be not a NULL pointer. The comment above ext4_get_block_dio_write() ("Maximum number of blocks...") is a duplicate; the original and correct comment is above the #define DIO_MAX_BLOCKS up above. The check for allocated > max_blocks in ext4_split_unwritten_extents() can be removed, since the code returns immediately once allocated blocks is less or equals to the requested blocks to convert. Based on review comments from Curt Wohlgemuth. Signed-off-by: Mingming Cao <cmm@xxxxxxxxxx> --- fs/ext4/extents.c | 96 +++++++++++++++++++++++++----------------------------- fs/ext4/inode.c | 9 ++--- 2 files changed, 50 insertions(+), 55 deletions(-) Index: linux-2.6.31-rc4/fs/ext4/inode.c =================================================================== --- linux-2.6.31-rc4.orig/fs/ext4/inode.c +++ linux-2.6.31-rc4/fs/ext4/inode.c @@ -3367,8 +3367,6 @@ out: return ret; } -/* Maximum number of blocks we map for direct IO at once. */ - static int ext4_get_block_dio_write(struct inode *inode, sector_t iblock, struct buffer_head *bh_result, int create) { @@ -3576,13 +3574,14 @@ static void ext4_end_io_dio(struct kiocb ext4_io_end_t *io_end = iocb->private; struct workqueue_struct *wq; + /* if not async direct IO or dio with 0 bytes write, just return */ + if (!io_end || !size) + return; + ext_debug("ext4_end_io_dio(): io_end 0x%p" "for inode %lu, iocb 0x%p, offset %llu, size %llu\n", iocb->private, io_end->inode->i_ino, iocb, offset, size); - /* if not async direct IO or dio with 0 bytes write, just return */ - if (!io_end || !size) - return; /* if not aio dio with unwritten extents, just free io and return */ if (io_end->flag != DIO_AIO_UNWRITTEN){ -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html