diff options
author | Liu Bo <liubo2009@cn.fujitsu.com> | 2012-02-23 10:49:04 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2012-02-23 10:49:04 -0500 |
commit | 5500cdbe14d7435e04f66ff3cfb8ecd8b8e44ebf (patch) | |
tree | e09399d4a56fcbad38765fd24c7c6e8782f438de /fs/btrfs | |
parent | 506531905296d6aee84480c879b25ea98c3f9db6 (diff) | |
download | op-kernel-dev-5500cdbe14d7435e04f66ff3cfb8ecd8b8e44ebf.zip op-kernel-dev-5500cdbe14d7435e04f66ff3cfb8ecd8b8e44ebf.tar.gz |
Btrfs: increase the global block reserve estimates
When doing IO with large amounts of data fragmentation, the global block
reserve calulations are too low. This increases them to avoid
ENOSPC crashes.
Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/extent-tree.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index dc083f5..079e5a1 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -4108,7 +4108,7 @@ static u64 calc_global_metadata_size(struct btrfs_fs_info *fs_info) num_bytes += div64_u64(data_used + meta_used, 50); if (num_bytes * 3 > meta_used) - num_bytes = div64_u64(meta_used, 3); + num_bytes = div64_u64(meta_used, 3) * 2; return ALIGN(num_bytes, fs_info->extent_root->leafsize << 10); } |