Btrfs: fix race between allocate and release extent buffer.
Increase extent buffer's reference count while holding the lock. Otherwise it can race with try_release_extent_buffer. Signed-off-by: Yan Zheng <zheng.yan@oracle.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
035fe03a7a
commit
f044ba7835
|
@ -3165,10 +3165,9 @@ struct extent_buffer *alloc_extent_buffer(struct extent_io_tree *tree,
|
|||
spin_unlock(&tree->buffer_lock);
|
||||
goto free_eb;
|
||||
}
|
||||
spin_unlock(&tree->buffer_lock);
|
||||
|
||||
/* add one reference for the tree */
|
||||
atomic_inc(&eb->refs);
|
||||
spin_unlock(&tree->buffer_lock);
|
||||
return eb;
|
||||
|
||||
free_eb:
|
||||
|
|
Loading…
Reference in a new issue