ext4: fix mballoc breakage with 64k block size
authorChandan Rajendra <chandan@linux.vnet.ibm.com>
Tue, 15 Nov 2016 02:04:37 +0000 (21:04 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 15 Nov 2016 02:04:37 +0000 (21:04 -0500)
'border' variable is set to a value of 2 times the block size of the
underlying filesystem. With 64k block size, the resulting value won't
fit into a 16-bit variable. Hence this commit changes the data type of
'border' to 'unsigned int'.

Fixes: c9de560ded61f
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Cc: stable@vger.kernel.org
fs/ext4/mballoc.c

index f418f55c2bbe1bf011f4d401731da533cbb75666..a937ac7ef99f30b8d0a437952dd20128b13fc265 100644 (file)
@@ -669,7 +669,7 @@ static void ext4_mb_mark_free_simple(struct super_block *sb,
        ext4_grpblk_t min;
        ext4_grpblk_t max;
        ext4_grpblk_t chunk;
-       unsigned short border;
+       unsigned int border;
 
        BUG_ON(len > EXT4_CLUSTERS_PER_GROUP(sb));