diff options
author | Liu Bo <liubo2009@cn.fujitsu.com> | 2012-03-29 09:57:44 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2012-03-29 09:57:44 -0400 |
commit | 15d1ff8111aad85d8b40ee396758990d17a2caac (patch) | |
tree | 5258905b649150abae0a8aa010bbaa7ef1077e97 /fs/super.c | |
parent | 2bcc0328c3a043880796a602c75fbeb1537aa1e1 (diff) |
Btrfs: fix deadlock during allocating chunks
This deadlock comes from xfstests 251.
We'll hold the chunk_mutex throughout the whole of a chunk allocation.
But if we find that we've used up system chunk space, we need to allocate a
new system chunk, but this will lead to a recursion of chunk allocation and end
up with a deadlock on chunk_mutex.
So instead we need to allocate the system chunk first if we find we're in ENOSPC.
Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/super.c')
0 files changed, 0 insertions, 0 deletions