提交 d9b0218f 编写于 作者: L Liu Bo 提交者: David Sterba

Btrfs: fix a bug on overcommit stuff

When overcommitting, we should check the sum of pinned space and
bytes for delayed item.
Signed-off-by: NLiu Bo <liubo2009@cn.fujitsu.com>
上级 9d47c767
......@@ -3611,12 +3611,15 @@ static int may_commit_transaction(struct btrfs_root *root,
if (space_info != delayed_rsv->space_info)
return -ENOSPC;
spin_lock(&space_info->lock);
spin_lock(&delayed_rsv->lock);
if (delayed_rsv->size < bytes) {
if (space_info->bytes_pinned + delayed_rsv->size < bytes) {
spin_unlock(&delayed_rsv->lock);
spin_unlock(&space_info->lock);
return -ENOSPC;
}
spin_unlock(&delayed_rsv->lock);
spin_unlock(&space_info->lock);
commit:
trans = btrfs_join_transaction(root);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册