aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ext4/mballoc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index efa111a7606d..49e444b51a0c 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -1266,6 +1266,7 @@ static void ext4_mb_unload_buddy(struct ext4_buddy *e4b)
1266static int mb_find_order_for_block(struct ext4_buddy *e4b, int block) 1266static int mb_find_order_for_block(struct ext4_buddy *e4b, int block)
1267{ 1267{
1268 int order = 1; 1268 int order = 1;
1269 int bb_incr = 1 << (e4b->bd_blkbits - 1);
1269 void *bb; 1270 void *bb;
1270 1271
1271 BUG_ON(e4b->bd_bitmap == e4b->bd_buddy); 1272 BUG_ON(e4b->bd_bitmap == e4b->bd_buddy);
@@ -1278,7 +1279,8 @@ static int mb_find_order_for_block(struct ext4_buddy *e4b, int block)
1278 /* this block is part of buddy of order 'order' */ 1279 /* this block is part of buddy of order 'order' */
1279 return order; 1280 return order;
1280 } 1281 }
1281 bb += 1 << (e4b->bd_blkbits - order); 1282 bb += bb_incr;
1283 bb_incr >>= 1;
1282 order++; 1284 order++;
1283 } 1285 }
1284 return 0; 1286 return 0;