From 6a648ce7fd15c15231f54b0324a62503714cb694 Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Fri, 13 Apr 2012 17:05:08 +0300 Subject: [PATCH] --- yaml --- r: 299807 b: refs/heads/master c: 37db63a400d3bac467795aa43901065fd8d903b7 h: refs/heads/master i: 299805: 0cefa0430dd41591806b1ba89b30078114795326 299803: de2a7581cb29543b0bcce8511d435ab4a17d20e1 299799: fb9388b6d157d66435d024a21f93667335f5b340 299791: 19c245d2565fd0b97b4df99a58526d8459715ce4 299775: 02d47f1cdbbb6fca1f893d53ed05111dab728095 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/volumes.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index a7f3fd0585d8..3ac8bd5ef751 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b916a59adfdc875381b68ced258694b434cf43ae +refs/heads/master: 37db63a400d3bac467795aa43901065fd8d903b7 diff --git a/trunk/fs/btrfs/volumes.c b/trunk/fs/btrfs/volumes.c index 759d02486d7c..ce289af526f0 100644 --- a/trunk/fs/btrfs/volumes.c +++ b/trunk/fs/btrfs/volumes.c @@ -3324,12 +3324,14 @@ static int __btrfs_alloc_chunk(struct btrfs_trans_handle *trans, stripe_size = devices_info[ndevs-1].max_avail; num_stripes = ndevs * dev_stripes; - if (stripe_size * num_stripes > max_chunk_size * ncopies) { + if (stripe_size * ndevs > max_chunk_size * ncopies) { stripe_size = max_chunk_size * ncopies; - do_div(stripe_size, num_stripes); + do_div(stripe_size, ndevs); } do_div(stripe_size, dev_stripes); + + /* align to BTRFS_STRIPE_LEN */ do_div(stripe_size, BTRFS_STRIPE_LEN); stripe_size *= BTRFS_STRIPE_LEN;