From: Kent Overstreet Date: Fri, 21 Jul 2023 01:28:03 +0000 (-0400) Subject: Run shrinkers when pthread_create fails X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=71ed9f183ba9a2cb4230353b7ae62ac335c53c7c;p=bcachefs-tools-debian Run shrinkers when pthread_create fails Signed-off-by: Kent Overstreet --- diff --git a/linux/kthread.c b/linux/kthread.c index 134aeee..17830e5 100644 --- a/linux/kthread.c +++ b/linux/kthread.c @@ -80,7 +80,13 @@ struct task_struct *kthread_create(int (*thread_fn)(void *data), pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 32 << 10); - ret = pthread_create(&p->thread, &attr, kthread_start_fn, p); + for (unsigned i = 0; i < 10; i++) { + ret = pthread_create(&p->thread, &attr, kthread_start_fn, p); + if (!ret) + break; + + run_shrinkers(GFP_KERNEL, true); + } if (ret) return ERR_PTR(-ret); pthread_setname_np(p->thread, p->comm);