diff options
author | David Sterba <dsterba@suse.cz> | 2014-11-14 15:05:06 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-01-08 10:27:49 -0800 |
commit | c44bd16a6cc8418759f485f6980941994b87f7be (patch) | |
tree | 0d5404829d819927624aabc77e4e3d3d6f91de42 | |
parent | f9c9bec6a603e71d6296612627b830d93c2b78bf (diff) | |
download | linux-stable-c44bd16a6cc8418759f485f6980941994b87f7be.tar.gz linux-stable-c44bd16a6cc8418759f485f6980941994b87f7be.tar.bz2 linux-stable-c44bd16a6cc8418759f485f6980941994b87f7be.zip |
btrfs: fix wrong accounting of raid1 data profile in statfs
commit 0d95c1bec906dd1ad951c9c001e798ca52baeb0f upstream.
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")
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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 c4124de4435b..6daa28c6a1dc 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -1731,7 +1731,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) { mutex_unlock(&fs_info->chunk_mutex); |