Patch "btrfs: fix mixed block count of available space" has been added to the 4.5-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
btrfs: fix mixed block count of available space
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
btrfs-fix-mixed-block-count-of-available-space.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
ae02d1bd070767e109f4a6f1bb1f466e9698a355Mon Sep 17 00:00:00 2001
From: Luis de Bethencourt <[email protected]>
Date: Wed, 30 Mar 2016 21:53:38 +0100
Subject: btrfs: fix mixed block count of available space
From: Luis de Bethencourt <[email protected]>
commit ae02d1bd070767e109f4a6f1bb1f466e9698a355 upstream.
Metadata for mixed block is already accounted in total data and should not be counted as part of the free metadata space.
--- fs/btrfs/super.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)
fs/btrfs/super.c +13 -3
@@ -2024,6 +2024,7 @@ static int btrfs_statfs(struct dentry *dstruct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv;int ret;u64 thresh =0 ; +int mixed =0 ;/* * holding chunk_muext to avoid allocating new chunks, holding
@@ -2049,8 +2050,17 @@ static int btrfs_statfs(struct dentry *d } } } -if (found->flags &BTRFS_BLOCK_GROUP_METADATA ) - total_free_meta += found->disk_total - found->disk_used; + +/* +* Metadata in mixed block goup profiles are accounted in data +*/ +if (!mixed && found->flags &BTRFS_BLOCK_GROUP_METADATA ) { +if (found->flags &BTRFS_BLOCK_GROUP_DATA ) + mixed =1 ; +else + total_free_meta += found->disk_total - + found->disk_used; + } total_used += found->disk_used; }
@@ -2088,7 +2098,7 @@ static int btrfs_statfs(struct dentry *d*/ thresh =4 *1024 *1024 ; -if (total_free_meta - thresh < block_rsv->size) +if (!mixed && total_free_meta - thresh < block_rsv->size) buf->f_bavail =0 ; buf->f_type =BTRFS_SUPER_MAGIC ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/btrfs-fix-mixed-block-count-of-available-space.patch queue-4.5/btrfs-avoid-overflowing-f_bfree.patch