Skip to content
Commit aa38a711 authored by Miao Xie's avatar Miao Xie Committed by David Sterba
Browse files

Btrfs: fix deadlock on metadata reservation when evicting a inode



When I ran the xfstests, I found the test tasks was blocked on meta-data
reservation.

By debugging, I found the reason of this bug:
   start transaction
        |
	v
   reserve meta-data space
	|
	v
   flush delay allocation -> iput inode -> evict inode
	^					|
	|					v
   wait for delay allocation flush <- reserve meta-data space

And besides that, the flush on evicting inode will block the thread, which
is reclaiming the memory, and make oom happen easily.

Fix this bug by skipping the flush step when evicting inode.

Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
parent b52f75a5
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment