diff options
Diffstat (limited to 'libbcachefs/alloc_foreground.c')
-rw-r--r-- | libbcachefs/alloc_foreground.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libbcachefs/alloc_foreground.c b/libbcachefs/alloc_foreground.c index cabf866c..1c843a8f 100644 --- a/libbcachefs/alloc_foreground.c +++ b/libbcachefs/alloc_foreground.c @@ -662,8 +662,14 @@ alloc: goto alloc; } err: - if (!ob) + if (!ob) { + rcu_read_lock(); + struct task_struct *t = rcu_dereference(c->copygc_thread); + if (t) + wake_up_process(t); + rcu_read_unlock(); ob = ERR_PTR(-BCH_ERR_no_buckets_found); + } if (!IS_ERR(ob)) ob->data_type = data_type; |