summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.cz>2014-11-14 15:05:06 +0100
committerChris Mason <clm@fb.com>2014-11-20 17:20:09 -0800
commit0d95c1bec906dd1ad951c9c001e798ca52baeb0f (patch)
tree2b56d45ddd4c375db430ba7406148f97a5453f20
parent321592427c0146126aadfab8a9b663de1875c9f4 (diff)
downloadop-kernel-dev-0d95c1bec906dd1ad951c9c001e798ca52baeb0f.zip
op-kernel-dev-0d95c1bec906dd1ad951c9c001e798ca52baeb0f.tar.gz
btrfs: fix wrong accounting of raid1 data profile in statfs
The sizes that are obtained from space infos are in raw units and have to be adjusted according to the raid factor. This was missing for f_bavail and df reported doubled size for raid1. Reported-by: Martin Steigerwald <Martin@lichtvoll.de> Fixes: ba7b6e62f420 ("btrfs: adjust statfs calculations according to raid profiles") CC: stable@vger.kernel.org Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <clm@fb.com>
-rw-r--r--fs/btrfs/super.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index dc337d1..21c60ee 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1851,7 +1851,7 @@ static int btrfs_statfs(struct dentry *dentry, struct kstatfs *buf)
buf->f_bfree -= block_rsv->size >> bits;
spin_unlock(&block_rsv->lock);
- buf->f_bavail = total_free_data;
+ buf->f_bavail = div_u64(total_free_data, factor);
ret = btrfs_calc_avail_data_space(fs_info->tree_root, &total_free_data);
if (ret)
return ret;
OpenPOWER on IntegriCloud