ext4_zero_range() and ext4_collapse_range() duplicate the check in ext4_fallocate(). The checks are made with inode lock held when there's no need for that. Remove them, reducing the scope of the lock. Signed-off-by: Davide Italiano <dccitaliano@xxxxxxxxx> --- fs/ext4/extents.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index bed4308..9e6fa09 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4810,15 +4810,6 @@ static long ext4_zero_range(struct file *file, loff_t offset, flags |= EXT4_GET_BLOCKS_KEEP_SIZE; mutex_lock(&inode->i_mutex); - - /* - * Indirect files do not support unwritten extnets - */ - if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) { - ret = -EOPNOTSUPP; - goto out_mutex; - } - if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + len > i_size_read(inode)) { new_size = offset + len; @@ -5445,13 +5436,6 @@ int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len) ret = -EINVAL; goto out_mutex; } - - /* Currently just for extent based files */ - if (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) { - ret = -EOPNOTSUPP; - goto out_mutex; - } - truncate_pagecache(inode, ioffset); /* Wait for existing dio to complete */ -- 2.3.4 -- 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