diff options
author | David Sterba <[email protected]> | 2014-11-14 15:05:06 +0100 |
---|---|---|
committer | Chris Mason <[email protected]> | 2014-11-20 17:20:09 -0800 |
commit | 0d95c1bec906dd1ad951c9c001e798ca52baeb0f (patch) | |
tree | 2b56d45ddd4c375db430ba7406148f97a5453f20 | |
parent | 321592427c0146126aadfab8a9b663de1875c9f4 (diff) |
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 <[email protected]>
Fixes: ba7b6e62f420 ("btrfs: adjust statfs calculations according to raid profiles")
CC: [email protected]
Signed-off-by: David Sterba <[email protected]>
Signed-off-by: Chris Mason <[email protected]>
-rw-r--r-- | fs/btrfs/super.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index dc337d14ef5c..21c60ee2f664 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; |