Skip to content

Commit

Permalink
ext4: ignore a stripe width of 1
Browse files Browse the repository at this point in the history
If the stripe width was set to 1, then this patch will ignore
that stripe width and ext4 will act as if the stripe width
were 0 with respect to optimizing allocations.

Signed-off-by: Dan Ehrenberg <dehrenberg@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
  • Loading branch information
Dan Ehrenberg authored and Theodore Ts'o committed Jul 18, 2011
1 parent d7a1fee commit 3eb0865
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions fs/ext4/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -2384,17 +2384,25 @@ static unsigned long ext4_get_stripe_size(struct ext4_sb_info *sbi)
unsigned long stride = le16_to_cpu(sbi->s_es->s_raid_stride);
unsigned long stripe_width =
le32_to_cpu(sbi->s_es->s_raid_stripe_width);
int ret;

if (sbi->s_stripe && sbi->s_stripe <= sbi->s_blocks_per_group)
return sbi->s_stripe;

if (stripe_width <= sbi->s_blocks_per_group)
return stripe_width;
ret = sbi->s_stripe;
else if (stripe_width <= sbi->s_blocks_per_group)
ret = stripe_width;
else if (stride <= sbi->s_blocks_per_group)
ret = stride;
else
ret = 0;

if (stride <= sbi->s_blocks_per_group)
return stride;
/*
* If the stripe width is 1, this makes no sense and
* we set it to 0 to turn off stripe handling code.
*/
if (ret <= 1)
ret = 0;

return 0;
return ret;
}

/* sysfs supprt */
Expand Down

0 comments on commit 3eb0865

Please sign in to comment.