ext4: remove unneeded test in ext4_alloc_file_blocks()
authorFabian Frederick <fabf@skynet.be>
Thu, 15 Sep 2016 15:52:07 +0000 (11:52 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 15 Sep 2016 15:52:07 +0000 (11:52 -0400)
ext4_alloc_file_blocks() is called from ext4_zero_range() and
ext4_fallocate() both already testing EXT4_INODE_EXTENTS
We can call ext_depth(inode) unconditionnally.

[ Added BUG_ON check to make sure ext4_alloc_file_blocks() won't get
  called for a indirect-mapped inode in the future.  -- tytso ]

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/extents.c

index 7f69347bd5a5452e0c0da9f241cd13694a490476..ef288558b8692ef60a6cf6aa91d5f11fd3513726 100644 (file)
@@ -4679,6 +4679,7 @@ static int ext4_alloc_file_blocks(struct file *file, ext4_lblk_t offset,
        unsigned int credits;
        loff_t epos;
 
+       BUG_ON(!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS));
        map.m_lblk = offset;
        map.m_len = len;
        /*
@@ -4693,13 +4694,7 @@ static int ext4_alloc_file_blocks(struct file *file, ext4_lblk_t offset,
         * credits to insert 1 extent into extent tree
         */
        credits = ext4_chunk_trans_blocks(inode, len);
-       /*
-        * We can only call ext_depth() on extent based inodes
-        */
-       if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))
-               depth = ext_depth(inode);
-       else
-               depth = -1;
+       depth = ext_depth(inode);
 
 retry:
        while (ret >= 0 && len) {