From: Josef Bacik Date: Tue, 31 Jul 2018 16:39:04 +0000 (-0400) Subject: blk-cgroup: clear the throttle queue on fork X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=2c323017e381c55c5ce2a603b8305bb18c1162cc;p=openwrt%2Fstaging%2Fblogic.git blk-cgroup: clear the throttle queue on fork We were hitting a panic in production where we put too many times on the request queue. This is because we'd get the throttle_queue of the parent if we fork()'ed while we needed to be throttled, but we didn't have a reference on it. Instead just clear these flags on fork so the child doesn't pay for the sins of its father. Signed-off-by: Josef Bacik Signed-off-by: Jens Axboe --- diff --git a/kernel/fork.c b/kernel/fork.c index 9440d61b925c..694ae0e56866 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -843,6 +843,11 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) tsk->fail_nth = 0; #endif +#ifdef CONFIG_BLK_CGROUP + tsk->throttle_queue = NULL; + tsk->use_memdelay = 0; +#endif + return tsk; free_stack: