提交 52356716 编写于 作者: D David Sterba

btrfs: make find_workspace warn if there are no workspaces

Be verbose if there are no workspaces at all, ie. the module init time
preallocation failed.
Signed-off-by: NDavid Sterba <dsterba@suse.com>
上级 e721e49d
......@@ -834,7 +834,21 @@ static struct list_head *find_workspace(int type)
* workspace preallocated for each type and the compression
* time is bounded so we get to a workspace eventually. This
* makes our caller's life easier.
*
* To prevent silent and low-probability deadlocks (when the
* initial preallocation fails), check if there are any
* workspaces at all.
*/
if (atomic_read(total_ws) == 0) {
static DEFINE_RATELIMIT_STATE(_rs,
/* once per minute */ 60 * HZ,
/* no burst */ 1);
if (__ratelimit(&_rs)) {
printk(KERN_WARNING
"no compression workspaces, low memory, retrying");
}
}
goto again;
}
return workspace;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册