diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 8ca42e79686c..22f55aeb94f3 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4854,6 +4854,10 @@ static ssize_t memory_max_write(struct kernfs_open_file *of, if (signal_pending(current)) break; + /* cgroup_rmdir() waits for us with cgroup_mutex held. */ + if (memcg_is_dying(memcg)) + break; + if (!drained) { drain_all_stock(memcg); drained = true;