diff mbox

Btrfs: fix wrong calculation of the available space when reserving the space

Message ID 506417BB.5050408@cn.fujitsu.com (mailing list archive)
State New, archived
Headers show

Commit Message

Miao Xie Sept. 27, 2012, 9:09 a.m. UTC
According to the comment, we can overcommit the space up to 1/2 of the total
disk space, or we just can overcommit up to 1/8. But the code was written
reversedly. Fix it.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
---
This is based on btrfs-next tree.
---
 fs/btrfs/extent-tree.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Comments

Miao Xie Sept. 27, 2012, 12:33 p.m. UTC | #1
Please ignore this patch, it is not based on the new btrfs-next tree.
I'll send the right one as soon as possible.

Thanks
Miao

On thu, 27 Sep 2012 17:09:15 +0800, Miao Xie wrote:
> According to the comment, we can overcommit the space up to 1/2 of the total
> disk space, or we just can overcommit up to 1/8. But the code was written
> reversedly. Fix it.
> 
> Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
> ---
> This is based on btrfs-next tree.
> ---
>  fs/btrfs/extent-tree.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index a010234..8a01087 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -3962,9 +3962,9 @@ again:
>  		 * 1/2 of the space.
>  		 */
>  		if (flush)
> -			avail >>= 3;
> -		else
>  			avail >>= 1;
> +		else
> +			avail >>= 3;
>  		 spin_unlock(&root->fs_info->free_chunk_lock);
>  
>  		if (used + num_bytes < space_info->total_bytes + avail) {
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Josef Bacik Sept. 27, 2012, 1:16 p.m. UTC | #2
On Thu, Sep 27, 2012 at 03:09:15AM -0600, Miao Xie wrote:
> According to the comment, we can overcommit the space up to 1/2 of the total
> disk space, or we just can overcommit up to 1/8. But the code was written
> reversedly. Fix it.
> 

Sorry the comment is wrong, I was actually just looking at this the other day
:).  Basically we want non-flushers to be able to overcommit more to give those
guys more of a chance of being able to make an allocation, but we want flushers
to not be able to overcommit too much since they are allowed to make more
headroom, so the logic is right, the comment is wrong.  Thanks,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index a010234..8a01087 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -3962,9 +3962,9 @@  again:
 		 * 1/2 of the space.
 		 */
 		if (flush)
-			avail >>= 3;
-		else
 			avail >>= 1;
+		else
+			avail >>= 3;
 		 spin_unlock(&root->fs_info->free_chunk_lock);
 
 		if (used + num_bytes < space_info->total_bytes + avail) {