]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: make find_workspace always succeed
authorDavid Sterba <dsterba@suse.com>
Wed, 27 Apr 2016 00:41:17 +0000 (02:41 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 10 May 2016 07:46:13 +0000 (09:46 +0200)
commitc25ce1eddfcdbe5b80ea4c723b077e407c193aeb
treef74acacc029a10df8ba68cf1e2c0d40564a6949e
parentd7ad35902b5bfbdded3a469a1b096001dbf1b5ef
btrfs: make find_workspace always succeed

With just one preallocated workspace we can guarantee forward progress
even if there's no memory available for new workspaces. The cost is more
waiting but we also get rid of several error paths.

On average, there will be several idle workspaces, so the waiting
penalty won't be so bad.

In the worst case, all cpus will compete for one workspace until there's
some memory. Attempts to allocate a new one are done each time the
waiters are woken up.

Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/compression.c