Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1024939imm; Fri, 17 Aug 2018 10:31:04 -0700 (PDT) X-Google-Smtp-Source: AA+uWPy+u+KRV1bLa+dN7YbcU0GVrIyCH1JMEVn7HYZASBxfccG22sc7bp1jL3VItpZulf/itmPB X-Received: by 2002:a63:170e:: with SMTP id x14-v6mr3264987pgl.364.1534527064443; Fri, 17 Aug 2018 10:31:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534527064; cv=none; d=google.com; s=arc-20160816; b=CdaSuJCfhRKhJpIWfypjZ7Rx11bQi/Ug9Rb0GAdAeB9aeW21Cg2MaivbJpjsMssywD fJbk6yXK7hP9dyH+ldqMxbu1VRDJZh8aImQFXiidXe5YUYQkIvIkMO8LfpZtY96vM7fO lxEnYYHTSuMvcZ+0D21xHwD+eZMk5hW5WvFJukg8BO43hkYEixBBBjBUxE8eDWSQq85h pRXLscEl6cP8eh6fVyiP1tP7e+ilJHrG+dInbdaRUDqc9tS6chigFN7Gh4UpyX8FL7MU sR2Iq46K+4QDyozUpSCcIO8HWK0hFaIX5zbAe735zyN31TeR/NK3r1gvfhs92ywztXJo EmQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:mime-version:user-agent:date:message-id:autocrypt :openpgp:subject:from:cc:to:arc-authentication-results; bh=6idUTsO9NsaZagpOJ+3GFQSRUumKuAfjr0GbsCbgWnI=; b=yD3T+qjjlvy2n/8puXkDUDyLKRe5XTf13wtGR5SHbjk7+GmJ22nT0a/SGumNqnoobA 3a32IaPqYmMDvv2bVVDuME8w2ZMRd45tV6XkEpkRqOVyrXXE7+3H1jaEesTrkNyeQT7F Kpcr/iS5p9fLJ56vgE1bUd78eTfxWu6khK6H9Pv2Q5m/0TGue9qhTdg3nSlrCmXWVLFw MBeeW4sfywzHCw7GNsxNG7w4X+S4QblBkaK3Z6r8yGYwTQI1konFW74ybpXJEbOQNxgg 5yk256KTWqP8gtPsoIE7hs4Bfzsc6aFIt37nbRAfHxgOidJE26U6FvzRQdebvgUKuMyN fnlA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h71-v6si2486228pge.13.2018.08.17.10.30.48; Fri, 17 Aug 2018 10:31:04 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727942AbeHQUds (ORCPT + 99 others); Fri, 17 Aug 2018 16:33:48 -0400 Received: from vps-vb.mhejs.net ([37.28.154.113]:49566 "EHLO vps-vb.mhejs.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727181AbeHQUds (ORCPT ); Fri, 17 Aug 2018 16:33:48 -0400 Received: by vps-vb.mhejs.net with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.90_1) (envelope-from ) id 1fqiZ0-0007hU-Dm; Fri, 17 Aug 2018 19:29:30 +0200 To: Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel , Joseph Qi , Tejun Heo , jiufei.xue@linux.alibaba.com, Caspar Zhang From: "Maciej S. Szmigiero" Subject: [PATCH] blkcg: retry in case of locking failure in blkcg_css_offline() Openpgp: preference=signencrypt Autocrypt: addr=mail@maciej.szmigiero.name; prefer-encrypt=mutual; keydata= xsFNBFpGusUBEADXUMM2t7y9sHhI79+2QUnDdpauIBjZDukPZArwD+sDlx5P+jxaZ13XjUQc 6oJdk+jpvKiyzlbKqlDtw/Y2Ob24tg1g/zvkHn8AVUwX+ZWWewSZ0vcwp7u/LvA+w2nJbIL1 N0/QUUdmxfkWTHhNqgkNX5hEmYqhwUPozFR0zblfD/6+XFR7VM9yT0fZPLqYLNOmGfqAXlxY m8nWmi+lxkd/PYqQQwOq6GQwxjRFEvSc09m/YPYo9hxh7a6s8hAP88YOf2PD8oBB1r5E7KGb Fv10Qss4CU/3zaiyRTExWwOJnTQdzSbtnM3S8/ZO/sL0FY/b4VLtlZzERAraxHdnPn8GgxYk oPtAqoyf52RkCabL9dsXPWYQjkwG8WEUPScHDy8Uoo6imQujshG23A99iPuXcWc/5ld9mIo/ Ee7kN50MOXwS4vCJSv0cMkVhh77CmGUv5++E/rPcbXPLTPeRVy6SHgdDhIj7elmx2Lgo0cyh uyxyBKSuzPvb61nh5EKAGL7kPqflNw7LJkInzHqKHDNu57rVuCHEx4yxcKNB4pdE2SgyPxs9 9W7Cz0q2Hd7Yu8GOXvMfQfrBiEV4q4PzidUtV6sLqVq0RMK7LEi0RiZpthwxz0IUFwRw2KS/ 9Kgs9LmOXYimodrV0pMxpVqcyTepmDSoWzyXNP2NL1+GuQtaTQARAQABzTBNYWNpZWogUy4g U3ptaWdpZXJvIDxtYWlsQG1hY2llai5zem1pZ2llcm8ubmFtZT7CwZQEEwEIAD4WIQRyeg1N 257Z9gOb7O+Ef143kM4JdwUCWka6xQIbAwUJA8JnAAULCQgHAgYVCgkICwIEFgIDAQIeAQIX gAAKCRCEf143kM4Jdx4+EACwi1bXraGxNwgFj+KI8T0Xar3fYdaOF7bb7cAHllBCPQkutjnx 8SkYxqGvSNbBhGtpL1TqAYLB1Jr+ElB8qWEV6bJrffbRmsiBPORAxMfu8FF+kVqCYZs3nbku XNzmzp6R/eii40S+XySiscmpsrVQvz7I+xIIYdC0OTUu0Vl3IHf718GBYSD+TodCazEdN96k p9uD9kWNCU1vnL7FzhqClhPYLjPCkotrWM4gBNDbRiEHv1zMXb0/jVIR/wcDIUv6SLhzDIQn Lhre8LyKwid+WQxq7ZF0H+0VnPf5q56990cEBeB4xSyI+tr47uNP2K1kmW1FPd5q6XlIlvh2 WxsG6RNphbo8lIE6sd7NWSY3wXu4/R1AGdn2mnXKMp2O9039ewY6IhoeodCKN39ZR9LNld2w Dp0MU39LukPZKkVtbMEOEi0R1LXQAY0TQO//0IlAehfbkkYv6IAuNDd/exnj59GtwRfsXaVR Nw7XR/8bCvwU4svyRqI4luSuEiXvM9rwDAXbRKmu+Pk5h+1AOV+KjKPWCkBEHaASOxuApouQ aPZw6HDJ3fdFmN+m+vNcRPzST30QxGrXlS5GgY6CJ10W9gt/IJrFGoGxGxYjj4WzO97Rg6Mq WMa7wMPPNcnX5Nc/b8HW67Jhs3trj0szq6FKhqBsACktOU4g/ksV8eEtnM7AzQRaRrwiAQwA xnVmJqeP9VUTISps+WbyYFYlMFfIurl7tzK74bc67KUBp+PHuDP9p4ZcJUGC3UZJP85/GlUV dE1NairYWEJQUB7bpogTuzMI825QXIB9z842HwWfP2RW5eDtJMeujzJeFaUpmeTG9snzaYxY N3r0TDKj5dZwSIThIMQpsmhH2zylkT0jH7kBPxb8IkCQ1c6wgKITwoHFjTIO0B75U7bBNSDp XUaUDvd6T3xd1Fz57ujAvKHrZfWtaNSGwLmUYQAcFvrKDGPB5Z3ggkiTtkmW3OCQbnIxGJJw /+HefYhB5/kCcpKUQ2RYcYgCZ0/WcES1xU5dnNe4i0a5gsOFSOYCpNCfTHttVxKxZZTQ/rxj XwTuToXmTI4Nehn96t25DHZ0t9L9UEJ0yxH2y8Av4rtf75K2yAXFZa8dHnQgCkyjA/gs0ujG wD+Gs7dYQxP4i+rLhwBWD3mawJxLxY0vGwkG7k7npqanlsWlATHpOdqBMUiAR22hs02FikAo iXNgWTy7ABEBAAHCwXwEGAEIACYWIQRyeg1N257Z9gOb7O+Ef143kM4JdwUCWka8IgIbDAUJ A8JnAAAKCRCEf143kM4Jd9nXD/9jstJU6L1MLyr/ydKOnY48pSlZYgII9rSnFyLUHzNcW2c/ qw9LPMlDcK13tiVRQgKT4W+RvsET/tZCQcap2OF3Z6vd1naTur7oJvgvVM5lVhUia2O60kEZ XNlMLFwLSmGXhaAXNBySpzN2xStSLCtbK58r7Vf9QS0mR0PGU2v68Cb8fFWcYu2Yzn3RXf0Y dIVWvaQG9whxZq5MdJm5dknfTcCG+MtmbP/DnpQpjAlgVmDgMgYTBW1W9etU36YW0pTqEYuv 6cmRgSAKEDaYHhFLTR1+lLJkp5fFo3Sjm7XqmXzfSv9JGJGMKzoFOMBoLYv+VFnMoLX5UJAs 0JyFqFY2YxGyLd4J103NI/ocqQeU0TVvOZGVkENPSxIESnbxPghsEC0MWEbGsvqA8FwvU7Xf GhZPYzTRf7CndDnezEA69EhwpZXKs4CvxbXo5PDTv0OWzVaAWqq8s8aTMJWWAhvobFozJ63z afYHkuEjMo0Xps3o3uvKg7coooH521nNsv4ci+KeBq3mgMCRAy0g/Ef+Ql7mt900RCBHu4tk tOhPc3J1ep/e2WAJ4ngUqJhilzyCJnzVJ4cT79VK/uPtlfUCZdUz+jTC88TmP1p5wlucS31k Thy/CV4cqDFB8yzEujTSiRzd7neG3sH0vcxBd69uvSxLZPLGID840k0v5sftPA== Message-ID: <022a73bc-86e1-f242-09d8-490c3e2462f9@maciej.szmigiero.name> Date: Fri, 17 Aug 2018 19:29:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit 4c6994806f70 ("blk-throttle: fix race between blkcg_bio_issue_check() and cgroup_rmdir()") changed a loop inside blkcg_css_offline() from "while (!hlist_empty(list))" to "hlist_for_each_entry(list)" as the old condition wouldn't work anymore due to list elements no longer being removed inside the loop. However, this means that the code effectively lost an automatic retry in case of queue_lock locking failure. Let's put the lock retry back there. Signed-off-by: Maciej S. Szmigiero Fixes: 4c6994806f70 ("blk-throttle: fix race between blkcg_bio_issue_check() and cgroup_rmdir()"). Cc: stable@vger.kernel.org --- block/blk-cgroup.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index 694595b29b8f..db4b3331d01a 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c @@ -1073,16 +1073,23 @@ static void blkcg_css_offline(struct cgroup_subsys_state *css) spin_lock_irq(&blkcg->lock); hlist_for_each_entry(blkg, &blkcg->blkg_list, blkcg_node) { + bool retry; struct request_queue *q = blkg->q; +again: if (spin_trylock(q->queue_lock)) { blkg_pd_offline(blkg); spin_unlock(q->queue_lock); + retry = false; } else { spin_unlock_irq(&blkcg->lock); cpu_relax(); spin_lock_irq(&blkcg->lock); + retry = true; } + + if (retry) + goto again; } spin_unlock_irq(&blkcg->lock);