Nikolay Borisov 1e1c50a929 btrfs: Fix possible softlock on single core machines
do_chunk_alloc implements a loop checking whether there is a pending
chunk allocation and if so causes the caller do loop. Generally this
loop is executed only once, however testing with btrfs/072 on a single
core vm machines uncovered an extreme case where the system could loop
indefinitely. This is due to a missing cond_resched when loop which
doesn't give a chance to the previous chunk allocator finish its job.

The fix is to simply add the missing cond_resched.

Fixes: 6d74119f1a3e ("Btrfs: avoid taking the chunk_mutex in do_chunk_alloc")
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2018-04-05 19:22:35 +02:00
..
2018-02-06 14:43:37 +00:00
2018-02-07 14:25:22 -08:00
2018-02-07 14:25:22 -08:00
2017-11-16 11:41:22 -08:00
2018-01-24 17:33:57 -05:00
2018-02-06 18:32:45 -08:00
2018-01-01 10:09:33 -05:00
2018-03-07 11:47:15 +01:00
2018-02-07 14:25:22 -08:00
2017-09-04 19:05:15 -04:00
2018-02-06 18:32:45 -08:00
2018-01-03 10:13:36 -08:00
2017-12-07 14:23:30 -05:00
2018-01-29 07:27:24 -08:00
2018-02-06 10:41:33 -08:00
2018-02-08 15:18:32 -08:00
2017-12-09 20:16:33 -05:00