btrfs: fix wrong calculation of stripe size
authorMiao Xie <miaox@cn.fujitsu.com>
Wed, 5 Jan 2011 10:07:24 +0000 (10:07 +0000)
committerChris Mason <chris.mason@oracle.com>
Sun, 16 Jan 2011 16:30:19 +0000 (11:30 -0500)
commit1974a3b42d8cf7a9c74f1e0310c593023617037a
tree73d7eb8dc071a095fbe424776ab7610dbc897c16
parentd52a5b5f1fa40804f681cf9868d4a8f90661bdf3
btrfs: fix wrong calculation of stripe size

There are two tiny problem:
- One is When we check the chunk size is greater than the max chunk size or not,
  we should take mirrors into account, but the original code didn't.
- The other is btrfs shouldn't use the size of the residual free space as the
  length of of a dup chunk when doing chunk allocation. It is because the device
  space that a dup chunk needs is twice as large as the chunk size, if we use
  the size of the residual free space as the length of a dup chunk, we can not
  get enough free space. Fix it.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Reviewed-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/volumes.c