Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp404511pxb; Wed, 3 Feb 2021 08:10:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJzGCjpcAkWwi+uNPRHSxk8JxsbR74HL0pdh3Bi2GcMJnanmzgc5Z1ouigFngliBhur2fxtC X-Received: by 2002:a17:907:9495:: with SMTP id dm21mr3878003ejc.462.1612368607658; Wed, 03 Feb 2021 08:10:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612368607; cv=none; d=google.com; s=arc-20160816; b=GM1U7vhT78jpJt22e71JIeapDWCy3DXXP1YHq0z3WUxt3c2Npr8zCNNYB11YuFlhDT 5RT5w1XUfmf+ZLYzGZ2Sn4vgQYvtStvbgzQPMuvptnypfHJ9VT9KDt0x7RoU74FYGG6h RT6TNiyDG4QFbyDDrWpGm94RuNkqlCMIVCXhFodOtdV86Ueff+CHHvo2X7CrjJFmky5e z/m9iQylM4W9kZgk+NmJESY/VmQgdIWd0OBIvUJPDP/z5jLOvnRo95pKRZ7Q8OFhQ4++ 3lBhTHvraztYUN5w19FMNOrBV3u5v/lUggwoPjinU5ndw1L78a8QCSRuT4/stAewFl4K fhJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=CYaL9LusoGHbduz1D+Gy81Me9TskPJ/xQvBoJAZkwvQ=; b=QAxrT/A6UijviGhBJEaqNy9jSCbA9lZX1/ybJIrdVd6UTSWtyN7e6FwpThMOcRclQd p7P3jIlNDU64Dc3xjdKgKHDi8h8sz8f2Qhjzrh5tS9A7hW/Onwc1HOfqvbTfYkzlosZA VLgY2MK2ez+4Fv/vohiJi45f6kp156WZkD4XBU/qRiMXKnCD+N4a9x2B+WuIRwzxJZat eWhlfu2Ggm5uJMNYXiQjeJIMVSUvgJiJGbmVc+x2vy5osAOSsasYWGl+FfQnzAZygNzX jgtmdPjqfjunJww8TtzpMcnH7m5vBsUMCClNVerXisliv6qDG2VH5TB74wJ5jTSYY7ei U2LQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@veeam.com header.s=mx2 header.b=N5lVzPiB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=veeam.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q8si1606494edg.566.2021.02.03.08.09.41; Wed, 03 Feb 2021 08:10:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@veeam.com header.s=mx2 header.b=N5lVzPiB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=veeam.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234716AbhBCQGY (ORCPT + 99 others); Wed, 3 Feb 2021 11:06:24 -0500 Received: from mx2.veeam.com ([64.129.123.6]:40648 "EHLO mx2.veeam.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234760AbhBCQFO (ORCPT ); Wed, 3 Feb 2021 11:05:14 -0500 Received: from mail.veeam.com (prgmbx01.amust.local [172.24.0.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx2.veeam.com (Postfix) with ESMTPS id 2FC34415CB; Wed, 3 Feb 2021 10:54:40 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=veeam.com; s=mx2; t=1612367680; bh=CYaL9LusoGHbduz1D+Gy81Me9TskPJ/xQvBoJAZkwvQ=; h=From:To:CC:Subject:Date:In-Reply-To:References:From; b=N5lVzPiBU8lR6Si4NeJimXlSeKUQbGknX5AobzObI2P/Pg6yBMCICUnscT/NdGlz4 GMJD89KAjd5+IQ8MpZ12ClglZGNkZs10EBk2z75pu4gBF/Jv6rKogaCjQua/bNN51u MCuwRjMqdJIeSfg2eE6/Px0XyZMYAE/aj1QEgXuQ= Received: from prgdevlinuxpatch01.amust.local (172.24.14.5) by prgmbx01.amust.local (172.24.0.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.721.2; Wed, 3 Feb 2021 16:54:22 +0100 From: Sergei Shtepa To: , , , , , , , , , , , , , , , CC: , Subject: [PATCH v4 3/6] block: add blk_mq_is_queue_frozen() Date: Wed, 3 Feb 2021 18:53:55 +0300 Message-ID: <1612367638-3794-4-git-send-email-sergei.shtepa@veeam.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1612367638-3794-1-git-send-email-sergei.shtepa@veeam.com> References: <1612367638-3794-1-git-send-email-sergei.shtepa@veeam.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.24.14.5] X-ClientProxiedBy: prgmbx02.amust.local (172.24.0.172) To prgmbx01.amust.local (172.24.0.171) X-EsetResult: clean, is OK X-EsetId: 37303A29C604D265667062 X-Veeam-MMEX: True Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org blk_mq_is_queue_frozen() allow to assert that the queue is frozen. Signed-off-by: Sergei Shtepa --- block/blk-mq.c | 13 +++++++++++++ include/linux/blk-mq.h | 1 + 2 files changed, 14 insertions(+) diff --git a/block/blk-mq.c b/block/blk-mq.c index f285a9123a8b..924ec26fae5f 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -161,6 +161,19 @@ int blk_mq_freeze_queue_wait_timeout(struct request_queue *q, } EXPORT_SYMBOL_GPL(blk_mq_freeze_queue_wait_timeout); + +bool blk_mq_is_queue_frozen(struct request_queue *q) +{ + bool ret; + + mutex_lock(&q->mq_freeze_lock); + ret = percpu_ref_is_dying(&q->q_usage_counter) && percpu_ref_is_zero(&q->q_usage_counter); + mutex_unlock(&q->mq_freeze_lock); + + return ret; +} +EXPORT_SYMBOL_GPL(blk_mq_is_queue_frozen); + /* * Guarantee no request is in use, so we can change any data structure of * the queue afterward. diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index d705b174d346..9d1e8c4e922e 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h @@ -525,6 +525,7 @@ void blk_freeze_queue_start(struct request_queue *q); void blk_mq_freeze_queue_wait(struct request_queue *q); int blk_mq_freeze_queue_wait_timeout(struct request_queue *q, unsigned long timeout); +bool blk_mq_is_queue_frozen(struct request_queue *q); int blk_mq_map_queues(struct blk_mq_queue_map *qmap); void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues); -- 2.20.1