From patchwork Mon Apr 19 07:37:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210973 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8CB32C43462 for ; Mon, 19 Apr 2021 07:37:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6A79A61221 for ; Mon, 19 Apr 2021 07:37:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237752AbhDSHiU (ORCPT ); Mon, 19 Apr 2021 03:38:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237832AbhDSHiT (ORCPT ); Mon, 19 Apr 2021 03:38:19 -0400 Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3EBCC061760 for ; Mon, 19 Apr 2021 00:37:49 -0700 (PDT) Received: by mail-ed1-x533.google.com with SMTP id i3so13745406edt.1 for ; Mon, 19 Apr 2021 00:37:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=F4UM9nmnedCsNvLF6PWr9uH8F58/UWSesStUgueFg/I=; b=OfbsbqZS7Il7HiyLxwoJh45Pd3DvchCW37i1aAKsH5LnCberjo2Z297kp2AE59rSBZ uGQ0OGp8lV2Z1kuhOhcLz4AQjGRMCpO4bclfx2z/Xa2YgyqGl+3BFNIhyab7eQE29bPy vrjk95PBOHEjMepVd9aj2/cFOLAV4G1O0dlfKgH+GxQ93mz1rYpecwObxA60SJfvDbTk 8wZ1jKUfdcvpb1h46wF8oZMklBr9sypLy7/yY0yNBiyxgYcRYNRUaHkv8dzXMpZiUgDy 0YMvG5E2Wbn/jvTQnRvsW85bA8IaHH9/lxGxLowSz4L9MZWAEjuvBNI+BIrhG5CkKYf5 nswg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=F4UM9nmnedCsNvLF6PWr9uH8F58/UWSesStUgueFg/I=; b=bb7T/WBolVUSjcGiOMfVRsYV0R7iaxVNEoHVHhb2AFPCnUsodl3RISD8KQLJEYsSRo ENGfQ0EDBOkMD8xCLcdRCGBJW2JoRCblS/ulHm3nrvhTWl9OgJUv2YnMDjNya7CNeort gXCYux7l1t6bLiKSliMxqgJ+RJf85ZGOatkoTkhVBddn0BsDlzuzWAZ5A8fYOJ7fyJjd hacEhtRqRAkLlual4Z1RMPEUV2YhQmCB4Ojn89VHj55VNOmPU9+sixVlh4YDwTo1e/de RrYbDjA0VHuAd1gYAKPZ/fVzXrb/e2qmKfh93vJMvXJH/WZIgjPt3Zl592ahRCu2Npzv p3+A== X-Gm-Message-State: AOAM531Mwgtgeepx1eblTK5DCGKMgx9qOX9LHHTLH2d8C8GLo8VEp27J B22uTB7M0Qe/OjLU5W61dBcUcAMN2BKkUCuJ X-Google-Smtp-Source: ABdhPJz4Gu/lJVVq+o55nf6hAxkrdBhd6ai1pNvefHrF0R/2cActSp4BEgeSroyqW8Z66R14kwK8WA== X-Received: by 2002:a05:6402:350:: with SMTP id r16mr16482943edw.227.1618817868709; Mon, 19 Apr 2021 00:37:48 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:48 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Danil Kipnis , Md Haris Iqbal , Jack Wang , Gioh Kim Subject: [PATCHv5 for-next 01/19] MAINTAINERS: Change maintainer for rnbd module Date: Mon, 19 Apr 2021 09:37:04 +0200 Message-Id: <20210419073722.15351-2-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Danil Kipnis Danil steps down, Haris will take over. Also update email address to ionos.com, the old cloud.ionos.com will still work for some time. Signed-off-by: Danil Kipnis Acked-by: Md Haris Iqbal Signed-off-by: Jack Wang Signed-off-by: Gioh Kim --- MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index bf947775390c..723ba354dce6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -15358,8 +15358,8 @@ N: riscv K: riscv RNBD BLOCK DRIVERS -M: Danil Kipnis -M: Jack Wang +M: Md. Haris Iqbal +M: Jack Wang L: linux-block@vger.kernel.org S: Maintained F: drivers/block/rnbd/ From patchwork Mon Apr 19 07:37:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210975 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4B296C43470 for ; Mon, 19 Apr 2021 07:37:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 251EF60FE9 for ; Mon, 19 Apr 2021 07:37:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237874AbhDSHiV (ORCPT ); Mon, 19 Apr 2021 03:38:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39518 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237870AbhDSHiU (ORCPT ); Mon, 19 Apr 2021 03:38:20 -0400 Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E50E8C061763 for ; Mon, 19 Apr 2021 00:37:50 -0700 (PDT) Received: by mail-ed1-x52f.google.com with SMTP id h10so39398614edt.13 for ; Mon, 19 Apr 2021 00:37:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Kipd4FaBQ5PXB3dpojcZn5niu7bqNibIYxBeruWL79Q=; b=HgY0j0ha4IQEbIMeD9Jl48Vj45hJ4hoD/OU1s1L/4qjVu40ZRRM+j/PhoOkDT72RGh nipew/w97g5MPmGHjZiCi0WqU893BLWIXQIv2wi8yfScayy8jYkf54Pr5rvKYbTu1H6a P+1X3W5hiXxKlCiLRsN1CG0vrQfaaNaMGiYd3RwK0yx0+y8i8DS5onooeNmV+aIEGnTr d6Yb0iUBCD1E7seTllm2S4LdrHnfP4Q5nMRQREO3tRUNEiyaV14wnYVScgFd+0tUMMLz ZVSccZMvl3008dKEpojweGcCdWfRCOibARopscS/p+W1CgCLMuAWYpU66O18WW4Lf6Yw FODA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Kipd4FaBQ5PXB3dpojcZn5niu7bqNibIYxBeruWL79Q=; b=WUlFzxeaTg+ZJM32PEfQPoEfuaLb2OL8RwHnxsVExcMYIGJ47jf57+FYUe0DN/G3vu brNcYinnreqDwulpeSlJykhXNWzk+VwYVQxn7FH1ue6o48rlZ2IkXsFd/IIv4bauz7AS cKkLgeRHFxd35bKUKu41hU6je3lDnrBWEYBpOBcbEcgwI+FaiE7VeYwpqh3r77V7FqY0 cuUaIRhtG0I3R5HzW0ISmtzRFsD6PERJEUuPVXQ6ewkigz93Qr0B56ctyVrln8BcxakF w96nOaA22CPEhCaMeBW8FB9i1+WjjRY5wOsrplECFck/4E9Jg2wA6vH6hbwTNla4UKBo sPrw== X-Gm-Message-State: AOAM533VtrDiWPfL+RuxuR0p2/V/4OO3gvM5n+pmaVokh76A6S+ZNDK2 Ey7XMh8yPqLkV/b70DdQg722zNT4d0gOVQ== X-Google-Smtp-Source: ABdhPJwio9uJB3Uc4HMRjvrjpbjH/azmfAkxVmWp1DsH7TlNNfhzbFcIKbUImJGSbhTYOUnhUi0ldQ== X-Received: by 2002:a05:6402:440d:: with SMTP id y13mr24222456eda.316.1618817869619; Mon, 19 Apr 2021 00:37:49 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:49 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Gioh Kim , Jack Wang Subject: [PATCHv5 for-next 02/19] Documentation/sysfs-block-rnbd: Add descriptions for remap_device and resize Date: Mon, 19 Apr 2021 09:37:05 +0200 Message-Id: <20210419073722.15351-3-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Gioh Kim Two sysfs entries, remap_device and resize, are missing. Signed-off-by: Gioh Kim Signed-off-by: Jack Wang --- Documentation/ABI/testing/sysfs-block-rnbd | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-block-rnbd b/Documentation/ABI/testing/sysfs-block-rnbd index 14a6fe9422b3..ec716e1c31a8 100644 --- a/Documentation/ABI/testing/sysfs-block-rnbd +++ b/Documentation/ABI/testing/sysfs-block-rnbd @@ -44,3 +44,15 @@ Date: Feb 2020 KernelVersion: 5.7 Contact: Jack Wang Danil Kipnis Description: Contains the device access mode: ro, rw or migration. + +What: /sys/block/rnbd/rnbd/resize +Date: Feb 2020 +KernelVersion: 5.7 +Contact: Jack Wang Danil Kipnis +Description: Write the number of sectors to change the size of the disk. + +What: /sys/block/rnbd/rnbd/remap_device +Date: Feb 2020 +KernelVersion: 5.7 +Contact: Jack Wang Danil Kipnis +Description: Remap the disconnected device if the session is not destroyed yet. From patchwork Mon Apr 19 07:37:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210979 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7388C43603 for ; Mon, 19 Apr 2021 07:37:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 862F061221 for ; Mon, 19 Apr 2021 07:37:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237870AbhDSHiV (ORCPT ); Mon, 19 Apr 2021 03:38:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237838AbhDSHiV (ORCPT ); Mon, 19 Apr 2021 03:38:21 -0400 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4190C061760 for ; Mon, 19 Apr 2021 00:37:51 -0700 (PDT) Received: by mail-ej1-x630.google.com with SMTP id w3so51383484ejc.4 for ; Mon, 19 Apr 2021 00:37:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1/i9IowC0wtrivcjsB/Fsbsb8BNaaM8Yaedx4yrKH5I=; b=RJ2FB39oDZB6LH8cQMDZzX2eZUq1JPs5+Ri7k75DJDffc8GNoHdj/F/RwnS6/fk1Bk JpyLVam7qMjk4qq5OmYAsIU8Qv5AVktEIADI1haxcwngHIEabIBb6gWkGqyta76FPq9j 0ewlqlqCVgFrlkKXnSwDWIPKJoOr2O4aM+jlFjWOAcCJvBjOpihhGsn8MW6YaPt1ugj3 Qz+tThE1+Y4pcB45PD++emDOWyGr3SDoQGusd7W5KyL/l5J6xn2eaNw5P/Q8jG2tGu+R o1n1Uzfrb+MgnRo0Ywj1kungdVlh1atHkLxSRMr1vM7+egzEtLuqWzhnuMeUt/y9b2Te +g/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1/i9IowC0wtrivcjsB/Fsbsb8BNaaM8Yaedx4yrKH5I=; b=DgKsLSnTPu++GMzmeqb4laXV3L1+lJLaZ4yXUEmK+YNsPiRNVjV9PiNgdI8wtkWCZ9 D4pMOxSYm1XRNdj7OuV5OlEOgahmiirWKiZcc2pY+mKchs4W/1wpILWy4WendhOoqrn8 AHU/JChzuADVwzQrY4YxfH33p3ICMclZIviYjQwnRJ0QOwMg0AYdrQ1bQ6gg9wg1/g7/ 1bF9HPe8MnmOrRJ9iJqohvAJzQUqjX6MYZV0d9Wzg03qpatzHXIXUMdd6oDbTaOUohCC 7E7j3ePpPk4rdrt/xgj6/jJ1UJd7X1Q81GhnkMNEGlDt1DVZgjIQKhsqfGf8RlXWC6zd B1eg== X-Gm-Message-State: AOAM531yo9KzC8AFkNBUqZVz2hsaSjdvJHSA5u5TXAdeLd30d/r8NbK0 CpiZkEuBbdwUFXmxVSFWIP/OJMH4IDmnZYGC X-Google-Smtp-Source: ABdhPJz/6b9f5ACeGJ33sY0vDcObHYV82l390/TGtJP9OX2Ys4Dgjzep8DizhBWN/B5SzD5GhfhCMg== X-Received: by 2002:a17:907:78d0:: with SMTP id kv16mr20464505ejc.174.1618817870531; Mon, 19 Apr 2021 00:37:50 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:50 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Guoqing Jiang , Danil Kipnis , Gioh Kim , Jack Wang , Chaitanya Kulkarni Subject: [PATCHv5 for-next 03/19] block/rnbd-clt: Remove some arguments from insert_dev_if_not_exists_devpath Date: Mon, 19 Apr 2021 09:37:06 +0200 Message-Id: <20210419073722.15351-4-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Guoqing Jiang Remove 'pathname' and 'sess' since we can dereference it from 'dev'. Signed-off-by: Guoqing Jiang Reviewed-by: Danil Kipnis Signed-off-by: Gioh Kim Signed-off-by: Jack Wang Reviewed-by: Chaitanya Kulkarni --- drivers/block/rnbd/rnbd-clt.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index 45a470076652..5a5c8dea38dc 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -1471,14 +1471,13 @@ static bool exists_devpath(const char *pathname, const char *sessname) return found; } -static bool insert_dev_if_not_exists_devpath(const char *pathname, - struct rnbd_clt_session *sess, - struct rnbd_clt_dev *dev) +static bool insert_dev_if_not_exists_devpath(struct rnbd_clt_dev *dev) { bool found; + struct rnbd_clt_session *sess = dev->sess; mutex_lock(&sess_lock); - found = __exists_dev(pathname, sess->sessname); + found = __exists_dev(dev->pathname, sess->sessname); if (!found) { mutex_lock(&sess->lock); list_add_tail(&dev->list, &sess->devs_list); @@ -1522,7 +1521,7 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname, ret = PTR_ERR(dev); goto put_sess; } - if (insert_dev_if_not_exists_devpath(pathname, sess, dev)) { + if (insert_dev_if_not_exists_devpath(dev)) { ret = -EEXIST; goto put_dev; } From patchwork Mon Apr 19 07:37:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210977 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EDBEEC433ED for ; Mon, 19 Apr 2021 07:37:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AC0AB60FE9 for ; Mon, 19 Apr 2021 07:37:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237884AbhDSHiW (ORCPT ); Mon, 19 Apr 2021 03:38:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237838AbhDSHiW (ORCPT ); Mon, 19 Apr 2021 03:38:22 -0400 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE54EC061760 for ; Mon, 19 Apr 2021 00:37:52 -0700 (PDT) Received: by mail-ej1-x630.google.com with SMTP id sd23so42698338ejb.12 for ; Mon, 19 Apr 2021 00:37:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dUT1GNhkzIs4KMdUcaLBHxt9noYnFY4GBGwC4fHfsvc=; b=G+CAe+mp/UZxfpzla5tOiIlJBMCGAWqXpP0jSZTsLdJNvNpa6O1NICruhkQvM1WXcq xoYCsmclOw5BAfbPWKPzKbzpABi22dELgwMATD304QJ8gSGtXZY9FnPg9AFBOP3anIod 11IcDSR1EgJSmTC99Pf1ZsXPfgsafrVhV4iDxZOP/u3ungbJ9GhC0XS8HAtJedW7j6Av BycyZ74YV7xBDiz62rK/V8gDbTje/X2WOLr5n532BY+9D7v8QrE/godkd2reYoWbxyb3 lsA+g6rBdZUaG8AOmZjm1Ko7BrgIWJbjBLkNQr+Fv4boTCIliGNxDf7SOLZm3IfQFSPU NMIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dUT1GNhkzIs4KMdUcaLBHxt9noYnFY4GBGwC4fHfsvc=; b=dIgbNwe6s+cKmBdrN0iPL4r1dA/CL8VRjhbNknRiK4vx4T/3POX91DsjS+I+moM1O2 pcS40/qfwE4uU6piY+9eS30CNz3HdG4Hwkyd0fsvd8OLXAoeUz+XOFZFQ+jq7vnk4M68 F/dYP+tMejZQMez8AZC9G3+2CijurwSr0JhsCVWgsXuieen2q1V0abGrSkdpgttRiSTJ WJX7M+kzXTH5r3B0vkpoAcTna5ike03/9+Ecp6gxfmMLQCyz4fd/REHaKlKxz2CsEppP UFG8z/X9wXDkonZGgfZlmzvvA3WCA+TVgW6bJClqUknwinaNNJnyJL7W1DRu3iZKeU7/ drmg== X-Gm-Message-State: AOAM532qvyRpvnVNrxZ06qNIVsCIhuACTmGrq/VJcE6mUsPYQNHyBK+W 4Jo7m02J4OuVwNI7cPqMw9pbtVoRZoWpDKA2 X-Google-Smtp-Source: ABdhPJxVHqjmKCBWJWzjmrjS2Qxxe7MwbOrL5xjApJuxS8oA5s2NIA4ShDaeUY0s24q9AMxP7VFdhw== X-Received: by 2002:a17:906:b118:: with SMTP id u24mr20734540ejy.331.1618817871401; Mon, 19 Apr 2021 00:37:51 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:51 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Guoqing Jiang , Danil Kipnis , Gioh Kim , Jack Wang , Chaitanya Kulkarni Subject: [PATCHv5 for-next 04/19] block/rnbd-clt: Remove some arguments from rnbd_client_setup_device Date: Mon, 19 Apr 2021 09:37:07 +0200 Message-Id: <20210419073722.15351-5-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Guoqing Jiang Remove them since both sess and idx can be dereferenced from dev. And sess is not used in the function. Signed-off-by: Guoqing Jiang Reviewed-by: Danil Kipnis Signed-off-by: Gioh Kim Signed-off-by: Jack Wang Reviewed-by: Chaitanya Kulkarni --- drivers/block/rnbd/rnbd-clt.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index 5a5c8dea38dc..ecb83c10013d 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -1354,10 +1354,9 @@ static void rnbd_clt_setup_gen_disk(struct rnbd_clt_dev *dev, int idx) blk_queue_flag_set(QUEUE_FLAG_NONROT, dev->queue); } -static int rnbd_client_setup_device(struct rnbd_clt_session *sess, - struct rnbd_clt_dev *dev, int idx) +static int rnbd_client_setup_device(struct rnbd_clt_dev *dev) { - int err; + int err, idx = dev->clt_device_id; dev->size = dev->nsectors * dev->logical_block_size; @@ -1535,7 +1534,7 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname, mutex_lock(&dev->lock); pr_debug("Opened remote device: session=%s, path='%s'\n", sess->sessname, pathname); - ret = rnbd_client_setup_device(sess, dev, dev->clt_device_id); + ret = rnbd_client_setup_device(dev); if (ret) { rnbd_clt_err(dev, "map_device: Failed to configure device, err: %d\n", From patchwork Mon Apr 19 07:37:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210981 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 05003C4360C for ; Mon, 19 Apr 2021 07:37:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E17E9610CC for ; Mon, 19 Apr 2021 07:37:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237903AbhDSHiX (ORCPT ); Mon, 19 Apr 2021 03:38:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237882AbhDSHiX (ORCPT ); Mon, 19 Apr 2021 03:38:23 -0400 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99858C061760 for ; Mon, 19 Apr 2021 00:37:53 -0700 (PDT) Received: by mail-ed1-x52a.google.com with SMTP id j12so14396026edy.3 for ; Mon, 19 Apr 2021 00:37:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vcFIBYzW1CLQzDq2mLrfCJg6alD/5v7YUQZWb1fw1bg=; b=UhWvML/82thPeOFST1dZd7zwSUOXUG0oZwHSdLovxLdSPgNATmODj6gESEoNy/Db84 7MKv8RMbhPrhTsf0ohSqy7f2lXlucqkxKsKcMVYZAe6p764mZ8F8CeUb59FRn35ACmRC ai5JstLR6wQUuyVqrOtRZynGBpuuKgqA7p5vJxSGSxnHOO1qtyX9C+AIkHTW9XFBkBAG eOo199orznjDjXN46vWrFM9vVWQmkrafmKmDwTerbxuoD7+TstEM5U0hxvSVOUtOc1I2 CPlEpFQ3RWsLgeqC37oUuUuHAtkUCl6Z9WBNLElYzVjP1W72qoL3sqmQlxXYSoHHITko ub9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vcFIBYzW1CLQzDq2mLrfCJg6alD/5v7YUQZWb1fw1bg=; b=NGcTpmrL+mk7WcEk+zxfgJb3xmKW1LYcAltSwA3U7mL8Ecr0G+9x8LCNCyP/sMpww3 Dd+hotjKaycWCVEM85cA6UnxOzRxRLQF2MocWZ1uz7qm/3qIRipRF75zO1p3S910o3s/ qwjVlCGNeAFZlNVqruyoE8ljJ8mqxKWt6RD+SjJObhfDxNZGYhzrixNXyMpVcnTJOCxY CC5B8MIIeySH8kEB5J1M2aLI75apTZZuveg3+6zL5vgXA4XJMDBoJHsavhYh4PWp/abr IG+zjSqFVtFRDeOsMeTTAk8VLc6GVs0WhDPKT0Zxs2S4OQFP16L8hK4LJhACFs9DnDSs 8/jg== X-Gm-Message-State: AOAM533mmokQYtKWhRjKLRk8b7bGsdSuf/eW5/OljkLQ8xoKpADOEpKW ypFPCe4x69rQ9a8hrgLHAyMtu3YKotXUNrqX X-Google-Smtp-Source: ABdhPJzIdOnNJqsq4ghh2FgiXJbAXJ1XFUWmLU4e+jKpL+GwNyjs2En+HoagiszxLsU9OAQmaBHhmw== X-Received: by 2002:aa7:d355:: with SMTP id m21mr5860016edr.270.1618817872215; Mon, 19 Apr 2021 00:37:52 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:52 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Guoqing Jiang , Danil Kipnis , Gioh Kim , Jack Wang , Chaitanya Kulkarni Subject: [PATCHv5 for-next 05/19] block/rnbd-clt: Move add_disk(dev->gd) to rnbd_clt_setup_gen_disk Date: Mon, 19 Apr 2021 09:37:08 +0200 Message-Id: <20210419073722.15351-6-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Guoqing Jiang It makes more sense to add gendisk in rnbd_clt_setup_gen_disk, instead of do it in rnbd_clt_map_device. Signed-off-by: Guoqing Jiang Reviewed-by: Danil Kipnis Signed-off-by: Gioh Kim Signed-off-by: Jack Wang Reviewed-by: Chaitanya Kulkarni --- drivers/block/rnbd/rnbd-clt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index ecb83c10013d..f864f06a49b3 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -1352,6 +1352,7 @@ static void rnbd_clt_setup_gen_disk(struct rnbd_clt_dev *dev, int idx) if (!dev->rotational) blk_queue_flag_set(QUEUE_FLAG_NONROT, dev->queue); + add_disk(dev->gd); } static int rnbd_client_setup_device(struct rnbd_clt_dev *dev) @@ -1553,8 +1554,6 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname, dev->max_hw_sectors, dev->rotational, dev->wc, dev->fua); mutex_unlock(&dev->lock); - - add_disk(dev->gd); rnbd_clt_put_sess(sess); return dev; From patchwork Mon Apr 19 07:37:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12211009 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B54CC43462 for ; Mon, 19 Apr 2021 07:37:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6BD886102A for ; Mon, 19 Apr 2021 07:37:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237915AbhDSHiZ (ORCPT ); Mon, 19 Apr 2021 03:38:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237882AbhDSHiY (ORCPT ); Mon, 19 Apr 2021 03:38:24 -0400 Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com [IPv6:2a00:1450:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C78DC061763 for ; Mon, 19 Apr 2021 00:37:54 -0700 (PDT) Received: by mail-ej1-x635.google.com with SMTP id l4so51315507ejc.10 for ; Mon, 19 Apr 2021 00:37:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zL6gQYZ5yMQsIXTOxSRsFVO1XenlLGr+TV3FCZ4q0tY=; b=aVp3V2QEidHmsDKKeDoP/IX+pQfya8dzvZJAHzhYp6Ums2++UwvB3YiK2+gYQ1XRgP bkaJBx5bEhVx+JkJ1+qmLR5SXrSzDzmHrffS1l/2k0OYJgpDf6jVuGNsHB194yoGEqez wj0PlKT+FZSt1sw+pdOn7IlLQRqSUhsh7FkRr4lXugxzSJ/LOFtZtub3FNljsMdbrQOm oP8x7H7ipqxzHDJ+5b1iXyfJqhAEnUsIYdBUn64d2XqPrqhwbqqAna6GUFSv6WtUuRde gJQXSCIAO8PiiXr1jLyQu4HqItAGfq6SV/ffBjpmvXMN+azy969dJ7fRtCsTCbnxGjmI OT4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zL6gQYZ5yMQsIXTOxSRsFVO1XenlLGr+TV3FCZ4q0tY=; b=FQwjd99yYXnuJEWkulbleF/USdPBmk+1ZCOqa8GIEGoLQGExf+6xkXH7aVQLts5B2O gIrVEelFD88gQKSuwVrscSf+0KZklmqU8wgWNp7eVPGIu0Ua3fy6SDXv7hMvGHbOgYAK EL+p/bMCUiNs5cP8aQ0If77MMGwI27TRZ7M0W1c0dEXkyftwrGaPlpH063BLgWHLjwo1 P1M5U8DUnfuSwgpx42ajg3UpUY7SnrkIjHm93+cKFxAUdOwRx+16FwtkmOhennzD8eTL LQUOzlLHTf1Zn1vwfLY8xjxYoYoD2/MZrHfocA0zUv3sUF85lfGltC4Go3q8Lr2fyV1g Wenw== X-Gm-Message-State: AOAM532KhDvjpexmnTSwXr5zGwCstdJYsHT1q38tMrz8M5sge22fj/J7 pMiQl654qKs4fAI0Fm3cZgPbjUHkKPlvme7d X-Google-Smtp-Source: ABdhPJw9oNWPwSdEbiMmOtXy2vufk1fqTp0BMBlfuJFVVXg64SZmEhh+NsJ5jxpzAqY1VrmG6y5dSw== X-Received: by 2002:a17:906:32cb:: with SMTP id k11mr21144705ejk.158.1618817873171; Mon, 19 Apr 2021 00:37:53 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:52 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Guoqing Jiang , Guoqing Jiang , Danil Kipnis , Gioh Kim , Chaitanya Kulkarni Subject: [PATCHv5 for-next 06/19] block/rnbd: Kill rnbd_clt_destroy_default_group Date: Mon, 19 Apr 2021 09:37:09 +0200 Message-Id: <20210419073722.15351-7-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Guoqing Jiang No need to have it since we can call sysfs_remove_group in the rnbd_clt_destroy_sysfs_files. Then rnbd_clt_destroy_sysfs_files is paired with it's counterpart rnbd_clt_create_sysfs_files. Signed-off-by: Guoqing Jiang Reviewed-by: Danil Kipnis Signed-off-by: Gioh Kim Signed-off-by: Jack Wang Reviewed-by: Chaitanya Kulkarni --- drivers/block/rnbd/rnbd-clt-sysfs.c | 6 +----- drivers/block/rnbd/rnbd-clt.c | 1 - drivers/block/rnbd/rnbd-clt.h | 1 - 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c index d4aa6bfc9555..58c2cc0725b6 100644 --- a/drivers/block/rnbd/rnbd-clt-sysfs.c +++ b/drivers/block/rnbd/rnbd-clt-sysfs.c @@ -639,13 +639,9 @@ int rnbd_clt_create_sysfs_files(void) return err; } -void rnbd_clt_destroy_default_group(void) -{ - sysfs_remove_group(&rnbd_dev->kobj, &default_attr_group); -} - void rnbd_clt_destroy_sysfs_files(void) { + sysfs_remove_group(&rnbd_dev->kobj, &default_attr_group); kobject_del(rnbd_devs_kobj); kobject_put(rnbd_devs_kobj); device_destroy(rnbd_dev_class, MKDEV(0, 0)); diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index f864f06a49b3..4e687ec88721 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -1675,7 +1675,6 @@ static void rnbd_destroy_sessions(void) struct rnbd_clt_dev *dev, *tn; /* Firstly forbid access through sysfs interface */ - rnbd_clt_destroy_default_group(); rnbd_clt_destroy_sysfs_files(); /* diff --git a/drivers/block/rnbd/rnbd-clt.h b/drivers/block/rnbd/rnbd-clt.h index 537d499dad3b..714d426b449b 100644 --- a/drivers/block/rnbd/rnbd-clt.h +++ b/drivers/block/rnbd/rnbd-clt.h @@ -159,7 +159,6 @@ int rnbd_clt_resize_disk(struct rnbd_clt_dev *dev, size_t newsize); int rnbd_clt_create_sysfs_files(void); void rnbd_clt_destroy_sysfs_files(void); -void rnbd_clt_destroy_default_group(void); void rnbd_clt_remove_dev_symlink(struct rnbd_clt_dev *dev); From patchwork Mon Apr 19 07:37:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210983 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 497C7C43460 for ; Mon, 19 Apr 2021 07:37:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1E7E9610CC for ; Mon, 19 Apr 2021 07:37:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237873AbhDSHi0 (ORCPT ); Mon, 19 Apr 2021 03:38:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237914AbhDSHiZ (ORCPT ); Mon, 19 Apr 2021 03:38:25 -0400 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 538D3C061760 for ; Mon, 19 Apr 2021 00:37:55 -0700 (PDT) Received: by mail-ej1-x631.google.com with SMTP id mh2so29801824ejb.8 for ; Mon, 19 Apr 2021 00:37:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UV5euG+BoTE43f7Ueiuj3a/UPU6dlpNgwx7fSpiSFBs=; b=dCV4Y9Fw2A8c6eMnrZEyj0ZIdwZXrtdzpG+3YcKb33x8GYf9/95plbzZmTMGVTw+J5 02UlMoluZOmPXnjGZLrVs97Djs62m3/VNovcRfLEWmISwlEn2qlMFUd2txmtAVJdOSzl DjkC2blGIDh/8mYnsgl6G/amuNz/Igm9UMm6gm4UmzAcHfIuQpPEM/IoubplSwbyOv1b 1VzMdONECPy2JPoj9NgqgnUhEdjsSwKitkAaHb82+It7q13z1GRMudJvV1nHpHsXgW6L LHKfJevZKlaImN6MfRsx2eSFrsi1FCRLmrw+42p0rbOebatNwvoZkSghGm4cCo3q0Q4D ovHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UV5euG+BoTE43f7Ueiuj3a/UPU6dlpNgwx7fSpiSFBs=; b=ccLRuLTu49lg7UCk9O9bJtrf96/AJfuQMHwyN6KtXm0k8ty3LJutMkb37TfFbVqoWC gaFOdTT1f/uLNEiQAHdEX3fXBO9+Y7ainloHUzFhw5R7HaYm9Zit0Eel4aqV5QPOLcGa CUKQgw+0LE1gSuo1jYMOM2ugpDjDV0qzbKB6uPr+oed0hZOTQFvOrTuhoQiNfnQeMgzV LNDjEVH2Nb8KMnEtBfD1d2M6KB/8AgBxWZjMBpkMEgyIUFTuPN7/0aZA26l8vgbEfrPj D940DfS53PbQ6jQd86AxA2b5ESQRw+ILyKlVc/KX3MWvqRh5pr6REqM1E8JJ7QUWP+AH IU3Q== X-Gm-Message-State: AOAM5322bcEIOwU9rEfD8eS0aiW2DT6cfB4glhK6sJRZ7DhZAqDju6An ON5SgHxnT8pCqslDytZq7I0L4Y0++MVHZ9al X-Google-Smtp-Source: ABdhPJx5CLN4jDnVYk7xYqQAdF0uN2HdD3BE/7NXFhH60t5q+Y7YEjN41Bi3l4Cx+UWXrxulQb5PxQ== X-Received: by 2002:a17:906:49d3:: with SMTP id w19mr20706452ejv.116.1618817873964; Mon, 19 Apr 2021 00:37:53 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:53 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Guoqing Jiang , Guoqing Jiang , Danil Kipnis , Gioh Kim , Chaitanya Kulkarni Subject: [PATCHv5 for-next 07/19] block/rnbd: Kill destroy_device_cb Date: Mon, 19 Apr 2021 09:37:10 +0200 Message-Id: <20210419073722.15351-8-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Guoqing Jiang We can use destroy_device directly since destroy_device_cb is just the wrapper of destroy_device. Signed-off-by: Guoqing Jiang Reviewed-by: Danil Kipnis Signed-off-by: Gioh Kim Signed-off-by: Jack Wang Reviewed-by: Chaitanya Kulkarni --- drivers/block/rnbd/rnbd-srv.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c index a6a68d44f517..a4fd9f167c18 100644 --- a/drivers/block/rnbd/rnbd-srv.c +++ b/drivers/block/rnbd/rnbd-srv.c @@ -178,8 +178,10 @@ static int process_rdma(struct rtrs_srv *sess, return err; } -static void destroy_device(struct rnbd_srv_dev *dev) +static void destroy_device(struct kref *kref) { + struct rnbd_srv_dev *dev = container_of(kref, struct rnbd_srv_dev, kref); + WARN_ONCE(!list_empty(&dev->sess_dev_list), "Device %s is being destroyed but still in use!\n", dev->id); @@ -198,18 +200,9 @@ static void destroy_device(struct rnbd_srv_dev *dev) kfree(dev); } -static void destroy_device_cb(struct kref *kref) -{ - struct rnbd_srv_dev *dev; - - dev = container_of(kref, struct rnbd_srv_dev, kref); - - destroy_device(dev); -} - static void rnbd_put_srv_dev(struct rnbd_srv_dev *dev) { - kref_put(&dev->kref, destroy_device_cb); + kref_put(&dev->kref, destroy_device); } void rnbd_destroy_sess_dev(struct rnbd_srv_sess_dev *sess_dev, bool keep_id) From patchwork Mon Apr 19 07:37:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210987 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DCE18C43600 for ; Mon, 19 Apr 2021 07:37:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AFBB460FE9 for ; Mon, 19 Apr 2021 07:37:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237937AbhDSHi0 (ORCPT ); Mon, 19 Apr 2021 03:38:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237895AbhDSHi0 (ORCPT ); Mon, 19 Apr 2021 03:38:26 -0400 Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E7B6C06138C for ; Mon, 19 Apr 2021 00:37:56 -0700 (PDT) Received: by mail-ej1-x62d.google.com with SMTP id l4so51315632ejc.10 for ; Mon, 19 Apr 2021 00:37:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FY+EvpFdvOhsS+mEDCKKrQ36Emkgr0WIzmwaogwOSK0=; b=AhotTSMvcBc4h2JRV2P0XHrws6lMKBwqUlhaYthkdt9GQ8b2GV+GSXFm3oGPPUeP+b OkYfyRtyvvukJSZ9F0JoHkSAMLFCYvfL3cGZy2VokgKykiIuQ+Ar/YNUEt+G0XptAk2E 4i8UC31z4cZE1MvAcRUo3J4xu+N+HmD3WC2HRVhADPLwM02QHj+YrrJ60Tgrc3duj9y2 P7PeUKDzSNycwr1fWiLIItqfpXmhlatq9G6PSrbgmCyNJ90d63E9pxSeeICpte31ujsy TNFJU/39+Cee8CBUDM3B9JQ913pGDlQNDLIJOqW1nT0GeHOdZgeEl0StF2I8KqEOH/6b n2TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FY+EvpFdvOhsS+mEDCKKrQ36Emkgr0WIzmwaogwOSK0=; b=XySwU8ADTn3+cea8IkHqpoNMJNS3nh+7LUGJWyg8GUoV4mPPPOIpSdVyrtNVMlwyEU cEFdGatv+8J9FE0DUvyT4YQ567XVSZ2tx2c/VUpzHr3LjLavidUnYO+v5D0j7OhwWdp9 fXtapV+U2zsdjdB+cSTw2/mxswTazZux8k3elfjv9b0qgwrX4nciia4MpQyopk8UU/5g knPkr+NxhjgdIx+w+l4yjTdCt/TnSvFIGQx4fC8cmT6ZjHmv0H4qx0rqWLRtZJMN2B0u C6BEzL0o+LTFcGtrmR2k50tALwIOoZyUTLi4TU9uJEPd/oJ2Yco9N2E2K/R4l4d3zZw9 VGIw== X-Gm-Message-State: AOAM533KMRARievtuKwyYuJEI7l4WqpYBtIPlq/c9lE8qvNJKtXjIiUv rO3zK2aTyhbTcdBi/W9gn8sopSsZWGZHniEC X-Google-Smtp-Source: ABdhPJxm3/Dl+gYYZ34jHAt3hmcpyInuiR+HGY15eklu5RjyPBH81+/L4lHLiVKRAtyAKRhLeKO8KQ== X-Received: by 2002:a17:906:4881:: with SMTP id v1mr1535769ejq.383.1618817874957; Mon, 19 Apr 2021 00:37:54 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:54 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Gioh Kim , Leon Romanovsky , linux-rdma@vger.kernel.org, Guoqing Jiang , Gioh Kim , Chaitanya Kulkarni , Jason Gunthorpe Subject: [PATCHv5 for-next 08/19] block/rnbd-clt: Replace {NO_WAIT,WAIT} with RTRS_PERMIT_{WAIT,NOWAIT} Date: Mon, 19 Apr 2021 09:37:11 +0200 Message-Id: <20210419073722.15351-9-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Gioh Kim They are defined with the same value and similar meaning, let's remove one of them, then we can remove {WAIT,NOWAIT}. Also change the type of 'wait' from 'int' to 'enum wait_type' to make it clear. Cc: Leon Romanovsky Cc: linux-rdma@vger.kernel.org Signed-off-by: Guoqing Jiang Reviewed-by: Md Haris Iqbal Signed-off-by: Gioh Kim Signed-off-by: Jack Wang Reviewed-by: Chaitanya Kulkarni Acked-by: Jason Gunthorpe Reviewed-by: Leon Romanovsky --- drivers/block/rnbd/rnbd-clt.c | 42 +++++++++++--------------- drivers/infiniband/ulp/rtrs/rtrs-clt.c | 4 +-- drivers/infiniband/ulp/rtrs/rtrs.h | 6 ++-- 3 files changed, 22 insertions(+), 30 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index 4e687ec88721..652b41cc4492 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -312,13 +312,11 @@ static void rnbd_rerun_all_if_idle(struct rnbd_clt_session *sess) static struct rtrs_permit *rnbd_get_permit(struct rnbd_clt_session *sess, enum rtrs_clt_con_type con_type, - int wait) + enum wait_type wait) { struct rtrs_permit *permit; - permit = rtrs_clt_get_permit(sess->rtrs, con_type, - wait ? RTRS_PERMIT_WAIT : - RTRS_PERMIT_NOWAIT); + permit = rtrs_clt_get_permit(sess->rtrs, con_type, wait); if (likely(permit)) /* We have a subtle rare case here, when all permits can be * consumed before busy counter increased. This is safe, @@ -344,7 +342,7 @@ static void rnbd_put_permit(struct rnbd_clt_session *sess, static struct rnbd_iu *rnbd_get_iu(struct rnbd_clt_session *sess, enum rtrs_clt_con_type con_type, - int wait) + enum wait_type wait) { struct rnbd_iu *iu; struct rtrs_permit *permit; @@ -354,9 +352,7 @@ static struct rnbd_iu *rnbd_get_iu(struct rnbd_clt_session *sess, return NULL; } - permit = rnbd_get_permit(sess, con_type, - wait ? RTRS_PERMIT_WAIT : - RTRS_PERMIT_NOWAIT); + permit = rnbd_get_permit(sess, con_type, wait); if (unlikely(!permit)) { kfree(iu); return NULL; @@ -435,16 +431,11 @@ static void msg_conf(void *priv, int errno) schedule_work(&iu->work); } -enum wait_type { - NO_WAIT = 0, - WAIT = 1 -}; - static int send_usr_msg(struct rtrs_clt *rtrs, int dir, struct rnbd_iu *iu, struct kvec *vec, size_t len, struct scatterlist *sg, unsigned int sg_len, void (*conf)(struct work_struct *work), - int *errno, enum wait_type wait) + int *errno, int wait) { int err; struct rtrs_clt_req_ops req_ops; @@ -476,7 +467,8 @@ static void msg_close_conf(struct work_struct *work) rnbd_clt_put_dev(dev); } -static int send_msg_close(struct rnbd_clt_dev *dev, u32 device_id, bool wait) +static int send_msg_close(struct rnbd_clt_dev *dev, u32 device_id, + enum wait_type wait) { struct rnbd_clt_session *sess = dev->sess; struct rnbd_msg_close msg; @@ -530,7 +522,7 @@ static void msg_open_conf(struct work_struct *work) * If server thinks its fine, but we fail to process * then be nice and send a close to server. */ - (void)send_msg_close(dev, device_id, NO_WAIT); + send_msg_close(dev, device_id, RTRS_PERMIT_NOWAIT); } } kfree(rsp); @@ -554,7 +546,7 @@ static void msg_sess_info_conf(struct work_struct *work) rnbd_clt_put_sess(sess); } -static int send_msg_open(struct rnbd_clt_dev *dev, bool wait) +static int send_msg_open(struct rnbd_clt_dev *dev, enum wait_type wait) { struct rnbd_clt_session *sess = dev->sess; struct rnbd_msg_open_rsp *rsp; @@ -601,7 +593,7 @@ static int send_msg_open(struct rnbd_clt_dev *dev, bool wait) return err; } -static int send_msg_sess_info(struct rnbd_clt_session *sess, bool wait) +static int send_msg_sess_info(struct rnbd_clt_session *sess, enum wait_type wait) { struct rnbd_msg_sess_info_rsp *rsp; struct rnbd_msg_sess_info msg; @@ -687,7 +679,7 @@ static void remap_devs(struct rnbd_clt_session *sess) * be asynchronous. */ - err = send_msg_sess_info(sess, NO_WAIT); + err = send_msg_sess_info(sess, RTRS_PERMIT_NOWAIT); if (err) { pr_err("send_msg_sess_info(\"%s\"): %d\n", sess->sessname, err); return; @@ -711,7 +703,7 @@ static void remap_devs(struct rnbd_clt_session *sess) continue; rnbd_clt_info(dev, "session reconnected, remapping device\n"); - err = send_msg_open(dev, NO_WAIT); + err = send_msg_open(dev, RTRS_PERMIT_NOWAIT); if (err) { rnbd_clt_err(dev, "send_msg_open(): %d\n", err); break; @@ -1242,7 +1234,7 @@ find_and_get_or_create_sess(const char *sessname, if (err) goto close_rtrs; - err = send_msg_sess_info(sess, WAIT); + err = send_msg_sess_info(sess, RTRS_PERMIT_WAIT); if (err) goto close_rtrs; @@ -1525,7 +1517,7 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname, ret = -EEXIST; goto put_dev; } - ret = send_msg_open(dev, WAIT); + ret = send_msg_open(dev, RTRS_PERMIT_WAIT); if (ret) { rnbd_clt_err(dev, "map_device: failed, can't open remote device, err: %d\n", @@ -1559,7 +1551,7 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname, return dev; send_close: - send_msg_close(dev, dev->device_id, WAIT); + send_msg_close(dev, dev->device_id, RTRS_PERMIT_WAIT); del_dev: delete_dev(dev); put_dev: @@ -1619,7 +1611,7 @@ int rnbd_clt_unmap_device(struct rnbd_clt_dev *dev, bool force, destroy_sysfs(dev, sysfs_self); destroy_gen_disk(dev); if (was_mapped && sess->rtrs) - send_msg_close(dev, dev->device_id, WAIT); + send_msg_close(dev, dev->device_id, RTRS_PERMIT_WAIT); rnbd_clt_info(dev, "Device is unmapped\n"); @@ -1653,7 +1645,7 @@ int rnbd_clt_remap_device(struct rnbd_clt_dev *dev) mutex_unlock(&dev->lock); if (!err) { rnbd_clt_info(dev, "Remapping device.\n"); - err = send_msg_open(dev, WAIT); + err = send_msg_open(dev, RTRS_PERMIT_WAIT); if (err) rnbd_clt_err(dev, "remap_device: %d\n", err); } diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c index 0a08b4b742a3..7efd49bdc78c 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c @@ -103,11 +103,11 @@ static inline void __rtrs_put_permit(struct rtrs_clt *clt, * up earlier. * * Context: - * Can sleep if @wait == RTRS_TAG_WAIT + * Can sleep if @wait == RTRS_PERMIT_WAIT */ struct rtrs_permit *rtrs_clt_get_permit(struct rtrs_clt *clt, enum rtrs_clt_con_type con_type, - int can_wait) + enum wait_type can_wait) { struct rtrs_permit *permit; DEFINE_WAIT(wait); diff --git a/drivers/infiniband/ulp/rtrs/rtrs.h b/drivers/infiniband/ulp/rtrs/rtrs.h index 8738e90e715a..2db1b5eb3ab0 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs.h +++ b/drivers/infiniband/ulp/rtrs/rtrs.h @@ -63,9 +63,9 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops, void rtrs_clt_close(struct rtrs_clt *sess); -enum { +enum wait_type { RTRS_PERMIT_NOWAIT = 0, - RTRS_PERMIT_WAIT = 1, + RTRS_PERMIT_WAIT = 1 }; /** @@ -81,7 +81,7 @@ enum rtrs_clt_con_type { struct rtrs_permit *rtrs_clt_get_permit(struct rtrs_clt *sess, enum rtrs_clt_con_type con_type, - int wait); + enum wait_type wait); void rtrs_clt_put_permit(struct rtrs_clt *sess, struct rtrs_permit *permit); From patchwork Mon Apr 19 07:37:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210985 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19942C43619 for ; Mon, 19 Apr 2021 07:37:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0047D60FE9 for ; Mon, 19 Apr 2021 07:37:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237882AbhDSHi1 (ORCPT ); Mon, 19 Apr 2021 03:38:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237925AbhDSHi0 (ORCPT ); Mon, 19 Apr 2021 03:38:26 -0400 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 44117C06138B for ; Mon, 19 Apr 2021 00:37:57 -0700 (PDT) Received: by mail-ed1-x536.google.com with SMTP id o20so13142558edc.7 for ; Mon, 19 Apr 2021 00:37:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FGH+Ljl4s6SmZtr/mbRqxMi5iJCFYf0z8DPotTgMP2c=; b=Tt79F+G/2TAdJgUjgiaPsarv0YHhBXCEUblYqTOU24pMsZS1uagu3rgePN1XwY0LUx 9iqCU+ugCogltF8rd8YUAUEbED8m8B/8Q1goX2V4qTxTfFF1CiYs44dB6Gs1TOjSLVAL czdY+HBJp+eMsEiV3BzGIToqO7w5XlXeW7y86JQlFseaqMMFqPwJX7Z2DW7tzw7DcKh6 kATvEQZs+MZAmHr5gZXLYYmifwVjbfW4ZPiYB4M6vytzeLcjx+EdrvZ/fKN5IqezMpLW XM8CuhP0L+MYM34uHN+9m6NHF1PW/Sio0lBKzFO6HLg8bIx+1UmD9TDKP4kO4mE2f58S s20w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FGH+Ljl4s6SmZtr/mbRqxMi5iJCFYf0z8DPotTgMP2c=; b=NqVJICHIzbiHuXkY/bLBL4VF8TEQwMtwASe2SfhGT4rK9Z5H9IWuab1uAapimuonUD fMVT46PLjYGGR25O3uVPBOroVsQgxgJeGNHrVDbSAOkm2siLECVTIC60Kga6Zmkt1uiR zu2DsXnWQbebQ2QxEe0qIQPM5pE5U+ATIOfVTVGCrkr0oO0VkngD+fyim7/cdODUGii8 D+UIInAIE/8dyTCmyauPfU1AMPLeVo/IMxYcLX4bzAANbP7BzPJ7+k9OVNNI7h/V67HQ dU0E/QPgHDZEF1ba9WRg+R9eNF1HF68w6dweA23Sz7Wci4GTtE4G4nIws4FKXBn2Fv4k 2JIQ== X-Gm-Message-State: AOAM533j/O+stDYQmJ7Mm7heFF97NYA5f6lnoK8OdSPBGsOqsdsQuZ+X EQmeEyf0rKHl65NQZE4OUaX4LIZbgnQA7WAy X-Google-Smtp-Source: ABdhPJwGnrPSy6CHdKdWk1ZTBhMOP6j1FaF01cjyXkNWrLaKuBova+LDJbo0Zarphg4c9HFQXfxKkw== X-Received: by 2002:a05:6402:451:: with SMTP id p17mr9123397edw.223.1618817875831; Mon, 19 Apr 2021 00:37:55 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:55 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Gioh Kim , Gioh Kim Subject: [PATCHv5 for-next 09/19] block/rnbd-srv: Prevent a deadlock generated by accessing sysfs in parallel Date: Mon, 19 Apr 2021 09:37:12 +0200 Message-Id: <20210419073722.15351-10-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Gioh Kim We got a warning message below. When server tries to close one session by force, it locks the sysfs interface and locks the srv_sess lock. The problem is that client can send a request to close at the same time. By close request, server locks the srv_sess lock and locks the sysfs to remove the sysfs interfaces. The simplest way to prevent that situation could be just use mutex_trylock. [ 234.153965] ====================================================== [ 234.154093] WARNING: possible circular locking dependency detected [ 234.154219] 5.4.84-storage #5.4.84-1+feature+linux+5.4.y+dbg+20201216.1319+b6b887b~deb10 Tainted: G O [ 234.154381] ------------------------------------------------------ [ 234.154531] kworker/1:1H/618 is trying to acquire lock: [ 234.154651] ffff8887a09db0a8 (kn->count#132){++++}, at: kernfs_remove_by_name_ns+0x40/0x80 [ 234.154819] but task is already holding lock: [ 234.154965] ffff8887ae5f6518 (&srv_sess->lock){+.+.}, at: rnbd_srv_rdma_ev+0x144/0x1590 [rnbd_server] [ 234.155132] which lock already depends on the new lock. [ 234.155311] the existing dependency chain (in reverse order) is: [ 234.155462] -> #1 (&srv_sess->lock){+.+.}: [ 234.155614] __mutex_lock+0x134/0xcb0 [ 234.155761] rnbd_srv_sess_dev_force_close+0x36/0x50 [rnbd_server] [ 234.155889] rnbd_srv_dev_session_force_close_store+0x69/0xc0 [rnbd_server] [ 234.156042] kernfs_fop_write+0x13f/0x240 [ 234.156162] vfs_write+0xf3/0x280 [ 234.156278] ksys_write+0xba/0x150 [ 234.156395] do_syscall_64+0x62/0x270 [ 234.156513] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 234.156632] -> #0 (kn->count#132){++++}: [ 234.156782] __lock_acquire+0x129e/0x23a0 [ 234.156900] lock_acquire+0xf3/0x210 [ 234.157043] __kernfs_remove+0x42b/0x4c0 [ 234.157161] kernfs_remove_by_name_ns+0x40/0x80 [ 234.157282] remove_files+0x3f/0xa0 [ 234.157399] sysfs_remove_group+0x4a/0xb0 [ 234.157519] rnbd_srv_destroy_dev_session_sysfs+0x19/0x30 [rnbd_server] [ 234.157648] rnbd_srv_rdma_ev+0x14c/0x1590 [rnbd_server] [ 234.157775] process_io_req+0x29a/0x6a0 [rtrs_server] [ 234.157924] __ib_process_cq+0x8c/0x100 [ib_core] [ 234.158709] ib_cq_poll_work+0x31/0xb0 [ib_core] [ 234.158834] process_one_work+0x4e5/0xaa0 [ 234.158958] worker_thread+0x65/0x5c0 [ 234.159078] kthread+0x1e0/0x200 [ 234.159194] ret_from_fork+0x24/0x30 [ 234.159309] other info that might help us debug this: [ 234.159513] Possible unsafe locking scenario: [ 234.159658] CPU0 CPU1 [ 234.159775] ---- ---- [ 234.159891] lock(&srv_sess->lock); [ 234.160005] lock(kn->count#132); [ 234.160128] lock(&srv_sess->lock); [ 234.160250] lock(kn->count#132); [ 234.160364] *** DEADLOCK *** [ 234.160536] 3 locks held by kworker/1:1H/618: [ 234.160677] #0: ffff8883ca1ed528 ((wq_completion)ib-comp-wq){+.+.}, at: process_one_work+0x40a/0xaa0 [ 234.160840] #1: ffff8883d2d5fe10 ((work_completion)(&cq->work)){+.+.}, at: process_one_work+0x40a/0xaa0 [ 234.161003] #2: ffff8887ae5f6518 (&srv_sess->lock){+.+.}, at: rnbd_srv_rdma_ev+0x144/0x1590 [rnbd_server] [ 234.161168] stack backtrace: [ 234.161312] CPU: 1 PID: 618 Comm: kworker/1:1H Tainted: G O 5.4.84-storage #5.4.84-1+feature+linux+5.4.y+dbg+20201216.1319+b6b887b~deb10 [ 234.161490] Hardware name: Supermicro H8QG6/H8QG6, BIOS 3.00 09/04/2012 [ 234.161643] Workqueue: ib-comp-wq ib_cq_poll_work [ib_core] [ 234.161765] Call Trace: [ 234.161910] dump_stack+0x96/0xe0 [ 234.162028] check_noncircular+0x29e/0x2e0 [ 234.162148] ? print_circular_bug+0x100/0x100 [ 234.162267] ? register_lock_class+0x1ad/0x8a0 [ 234.162385] ? __lock_acquire+0x68e/0x23a0 [ 234.162505] ? trace_event_raw_event_lock+0x190/0x190 [ 234.162626] __lock_acquire+0x129e/0x23a0 [ 234.162746] ? register_lock_class+0x8a0/0x8a0 [ 234.162866] lock_acquire+0xf3/0x210 [ 234.162982] ? kernfs_remove_by_name_ns+0x40/0x80 [ 234.163127] __kernfs_remove+0x42b/0x4c0 [ 234.163243] ? kernfs_remove_by_name_ns+0x40/0x80 [ 234.163363] ? kernfs_fop_readdir+0x3b0/0x3b0 [ 234.163482] ? strlen+0x1f/0x40 [ 234.163596] ? strcmp+0x30/0x50 [ 234.163712] kernfs_remove_by_name_ns+0x40/0x80 [ 234.163832] remove_files+0x3f/0xa0 [ 234.163948] sysfs_remove_group+0x4a/0xb0 [ 234.164068] rnbd_srv_destroy_dev_session_sysfs+0x19/0x30 [rnbd_server] [ 234.164196] rnbd_srv_rdma_ev+0x14c/0x1590 [rnbd_server] [ 234.164345] ? _raw_spin_unlock_irqrestore+0x43/0x50 [ 234.164466] ? lockdep_hardirqs_on+0x1a8/0x290 [ 234.164597] ? mlx4_ib_poll_cq+0x927/0x1280 [mlx4_ib] [ 234.164732] ? rnbd_get_sess_dev+0x270/0x270 [rnbd_server] [ 234.164859] process_io_req+0x29a/0x6a0 [rtrs_server] [ 234.164982] ? rnbd_get_sess_dev+0x270/0x270 [rnbd_server] [ 234.165130] __ib_process_cq+0x8c/0x100 [ib_core] [ 234.165279] ib_cq_poll_work+0x31/0xb0 [ib_core] [ 234.165404] process_one_work+0x4e5/0xaa0 [ 234.165550] ? pwq_dec_nr_in_flight+0x160/0x160 [ 234.165675] ? do_raw_spin_lock+0x119/0x1d0 [ 234.165796] worker_thread+0x65/0x5c0 [ 234.165914] ? process_one_work+0xaa0/0xaa0 [ 234.166031] kthread+0x1e0/0x200 [ 234.166147] ? kthread_create_worker_on_cpu+0xc0/0xc0 [ 234.166268] ret_from_fork+0x24/0x30 [ 234.251591] rnbd_server L243: : Device closed [ 234.604221] rnbd_server L264: RTRS Session close_device_session disconnected Signed-off-by: Gioh Kim Signed-off-by: Md Haris Iqbal Signed-off-by: Jack Wang --- drivers/block/rnbd/rnbd-srv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c index a4fd9f167c18..1549a6361630 100644 --- a/drivers/block/rnbd/rnbd-srv.c +++ b/drivers/block/rnbd/rnbd-srv.c @@ -334,7 +334,9 @@ void rnbd_srv_sess_dev_force_close(struct rnbd_srv_sess_dev *sess_dev) struct rnbd_srv_session *sess = sess_dev->sess; sess_dev->keep_id = true; - mutex_lock(&sess->lock); + /* It is already started to close by client's close message. */ + if (!mutex_trylock(&sess->lock)) + return; rnbd_srv_destroy_dev_session_sysfs(sess_dev); mutex_unlock(&sess->lock); } From patchwork Mon Apr 19 07:37:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210997 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07B13C433ED for ; Mon, 19 Apr 2021 07:38:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DD9F16102A for ; Mon, 19 Apr 2021 07:37:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237895AbhDSHi2 (ORCPT ); Mon, 19 Apr 2021 03:38:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237892AbhDSHi1 (ORCPT ); Mon, 19 Apr 2021 03:38:27 -0400 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6841C06138A for ; Mon, 19 Apr 2021 00:37:57 -0700 (PDT) Received: by mail-ej1-x630.google.com with SMTP id r9so51346819ejj.3 for ; Mon, 19 Apr 2021 00:37:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+WusjvsYw5StKARzVGPy5VqECBTOsgPT1toBxn5pBW8=; b=JaGUwUc7DZcoVAKStUGSmkYCT1j9dizx+39l2WdQ/2t+57x3hjcpUV48bobxlTWBPu LdJ5t2oyyVtX33xrvKnW0ozFXzQXkfFgei/PhwrLvBcTgpz0FJ0hGQDL2ramb8SaAgVv FtXOJQBSpPW8LgAnf1ZldHeSQwXZL0mRhaO/2FRwIdEwMTb12DI1Hd8BwymrQ7AiwZEB 7GyxxDzHufU6D40Ew44ygOPvAnCW/mVhXiTAkkHoSZWvXIBw4GO9y8nNQi+Nm8IWaeI0 9Jbf52+T5QF1FeC8tnJ/viVEKqvVB5Q6UGB01RD7olUQySMt8TXiq9nq293AdcOzFym8 qgxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+WusjvsYw5StKARzVGPy5VqECBTOsgPT1toBxn5pBW8=; b=adKGqJFt7kAU3rIqE9F2sTMXjA0FB/bS48uf9VWN9aIQ3N0Zb/zMdMSCLr/KBqASjq 9x2OmbPmteM73cKTD3qry43scgFPuDPmzr+8sTGtlLZvq/9qBGr03w8us/+NHQsVTVx9 5h79FNm0rAc9xSrHwLBLisLcwaqLpIAmqM0TkD07Cuv5FqZNRK6/5Jm+41YreyYTvjd4 XidOVZOh/Ce4QOFGvSTNR4LRjj/RIMj0raUxR5mscXrcb3Eh2eX7tEfv/ajuGAYRNfcj KozhBgK5MfS7Xu8FnkQuip2W043JgNNc8BbtJ9c00vqqP/IRtandA8y29wLz9kD32ilj 3fRA== X-Gm-Message-State: AOAM532/lMw1bFouE74A/1boV8ZZmoPL4JazdPlr+ZPquFu2gIl7hsu6 GTKqoezLhdEo9Pz7ZMHf7HPfbfDtSUlAXjeA X-Google-Smtp-Source: ABdhPJz/FXoP87ls7wj41eFRH3KmzHOkLpD6Taj5U1m5reU2lo5QVYEqAMc8yeAgkMAjxbUKfkxFxA== X-Received: by 2002:a17:906:430f:: with SMTP id j15mr20706135ejm.543.1618817876556; Mon, 19 Apr 2021 00:37:56 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:56 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Gioh Kim , Gioh Kim Subject: [PATCHv5 for-next 10/19] block/rnbd-srv: Remove force_close file after holding a lock Date: Mon, 19 Apr 2021 09:37:13 +0200 Message-Id: <20210419073722.15351-11-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Gioh Kim We changed the rnbd_srv_sess_dev_force_close to use try-lock because rnbd_srv_sess_dev_force_close and process_msg_close can generate a deadlock. Now rnbd_srv_sess_dev_force_close would do nothing if it fails to get the lock. So removing the force_close file should be moved to after the lock. Or the force_close file is removed but the others are not removed. Signed-off-by: Gioh Kim Signed-off-by: Md Haris Iqbal Signed-off-by: Jack Wang --- drivers/block/rnbd/rnbd-srv-sysfs.c | 5 +---- drivers/block/rnbd/rnbd-srv.c | 5 ++++- drivers/block/rnbd/rnbd-srv.h | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/block/rnbd/rnbd-srv-sysfs.c b/drivers/block/rnbd/rnbd-srv-sysfs.c index 05ffe488ddc6..acf5fced11ef 100644 --- a/drivers/block/rnbd/rnbd-srv-sysfs.c +++ b/drivers/block/rnbd/rnbd-srv-sysfs.c @@ -147,10 +147,7 @@ static ssize_t rnbd_srv_dev_session_force_close_store(struct kobject *kobj, } rnbd_srv_info(sess_dev, "force close requested\n"); - - /* first remove sysfs itself to avoid deadlock */ - sysfs_remove_file_self(&sess_dev->kobj, &attr->attr); - rnbd_srv_sess_dev_force_close(sess_dev); + rnbd_srv_sess_dev_force_close(sess_dev, attr); return count; } diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c index 1549a6361630..a9bb414f7442 100644 --- a/drivers/block/rnbd/rnbd-srv.c +++ b/drivers/block/rnbd/rnbd-srv.c @@ -329,7 +329,8 @@ static int rnbd_srv_link_ev(struct rtrs_srv *rtrs, } } -void rnbd_srv_sess_dev_force_close(struct rnbd_srv_sess_dev *sess_dev) +void rnbd_srv_sess_dev_force_close(struct rnbd_srv_sess_dev *sess_dev, + struct kobj_attribute *attr) { struct rnbd_srv_session *sess = sess_dev->sess; @@ -337,6 +338,8 @@ void rnbd_srv_sess_dev_force_close(struct rnbd_srv_sess_dev *sess_dev) /* It is already started to close by client's close message. */ if (!mutex_trylock(&sess->lock)) return; + /* first remove sysfs itself to avoid deadlock */ + sysfs_remove_file_self(&sess_dev->kobj, &attr->attr); rnbd_srv_destroy_dev_session_sysfs(sess_dev); mutex_unlock(&sess->lock); } diff --git a/drivers/block/rnbd/rnbd-srv.h b/drivers/block/rnbd/rnbd-srv.h index b157371c25ed..98ddc31eb408 100644 --- a/drivers/block/rnbd/rnbd-srv.h +++ b/drivers/block/rnbd/rnbd-srv.h @@ -64,7 +64,8 @@ struct rnbd_srv_sess_dev { enum rnbd_access_mode access_mode; }; -void rnbd_srv_sess_dev_force_close(struct rnbd_srv_sess_dev *sess_dev); +void rnbd_srv_sess_dev_force_close(struct rnbd_srv_sess_dev *sess_dev, + struct kobj_attribute *attr); /* rnbd-srv-sysfs.c */ int rnbd_srv_create_dev_sysfs(struct rnbd_srv_dev *dev, From patchwork Mon Apr 19 07:37:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210989 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E5A1C4361B for ; Mon, 19 Apr 2021 07:38:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 498E961178 for ; Mon, 19 Apr 2021 07:38:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237936AbhDSHi2 (ORCPT ); Mon, 19 Apr 2021 03:38:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39592 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237932AbhDSHi2 (ORCPT ); Mon, 19 Apr 2021 03:38:28 -0400 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DEE3CC061760 for ; Mon, 19 Apr 2021 00:37:58 -0700 (PDT) Received: by mail-ej1-x634.google.com with SMTP id r12so51370168ejr.5 for ; Mon, 19 Apr 2021 00:37:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=d7YY4Yx0tOezgEdUSrG57nr2i7WNMjSlXas7hudpooo=; b=JRm6/AWTQGyjo1dM6Da//+mk/f54RFVdV5Nh2psyZ5ZOvqeuKOms2gaB1phryzguNx ogfjPcVX3Y/7XpsGfBmJU71RFyEgdNR4r0OPY3h5V7gZr8tobzIYfE5mNtOaxSxZkhPN CmZjKj5H8NaSkY7v515XJZsyP4Id4Vv5kXjXiQy6FdJgMVe4mGDzpLS/GCDezkql4mk1 tly9LTJ9csp15azYDnV9aUpCgpIQZOhPU/FLa60LafXSuuWMStcWT0Yb7IRbqXss3kdU yp8rp/H3Y2VR3MBpZP075MNhenICACD7jWTDbJbtH2926RmKFempKiysev5xZheHiOpp KUlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=d7YY4Yx0tOezgEdUSrG57nr2i7WNMjSlXas7hudpooo=; b=RNSyhMkik6QShKD0KAqDhhA0FXfkN4jHZrfBMXGvGxbSOWOqjE2Wbrjp+VM17BYQ3L EW2T3gs8EqRJajEaikB7e8X+FeCjC6N39eqRWmasKMZxzlzUP9AgOWVI+R+O6VFVk60c QJGdeGsE6xrf0vTOYrk3HM5wV/bEqwclyAS00lqvsDFyTL47+qfbdw4+q8NoXyrNYYzi 5qDfNLMoUegjxFohZYOmeRY3OxHFd7l9UwffB+7WpkHX1YvARbtI7Ja/oayWlmLhrONU q+yT/F93Ie/IjchJnTZy8FA2+iaH50R2LxeVsHJnV4xuR4nBS8LBCB1KHNgCDO0YNrgx Sb5A== X-Gm-Message-State: AOAM532d+olJymMp1i9xhVhKI+EeWkezkyih1/X68p1X3si3opfX9a/0 jLg5sJj5ma8sFfEcupIhTrGdqjzwWR7nrlfL X-Google-Smtp-Source: ABdhPJxwMkzkWVlCAkAD1VvglIFWPpw3654ugCjLUnJtWuiOESzpmwmw1LabZQBQTKcRfEU4pfnK4Q== X-Received: by 2002:a17:906:9b2:: with SMTP id q18mr20598005eje.147.1618817877398; Mon, 19 Apr 2021 00:37:57 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:57 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Tom Rix , Gioh Kim Subject: [PATCHv5 for-next 11/19] block/rnbd-clt: Improve find_or_create_sess() return check Date: Mon, 19 Apr 2021 09:37:14 +0200 Message-Id: <20210419073722.15351-12-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Tom Rix clang static analysis reports this problem rnbd-clt.c:1212:11: warning: Branch condition evaluates to a garbage value else if (!first) ^~~~~~ This is triggered in the find_and_get_or_create_sess() call because the variable first is not initialized and the earlier check is specifically for if (sess == ERR_PTR(-ENOMEM)) This is false positive. But the if-check can be reduced by initializing first to false and then returning if the call to find_or_creat_sess() does not set it to true. When it remains false, either sess will be valid or not. The not case is caught by find_and_get_or_create_sess()'s caller rnbd_clt_map_device() sess = find_and_get_or_create_sess(...); if (IS_ERR(sess)) return ERR_CAST(sess); Since find_and_get_or_create_sess() initializes first to false setting it in find_or_create_sess() is not needed. Signed-off-by: Tom Rix Signed-off-by: Jack Wang Signed-off-by: Gioh Kim --- drivers/block/rnbd/rnbd-clt.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index 652b41cc4492..9b44aac680d5 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -910,6 +910,7 @@ static struct rnbd_clt_session *__find_and_get_sess(const char *sessname) return NULL; } +/* caller is responsible for initializing 'first' to false */ static struct rnbd_clt_session *find_or_create_sess(const char *sessname, bool *first) { @@ -925,8 +926,7 @@ rnbd_clt_session *find_or_create_sess(const char *sessname, bool *first) } list_add(&sess->list, &sess_list); *first = true; - } else - *first = false; + } mutex_unlock(&sess_lock); return sess; @@ -1194,13 +1194,11 @@ find_and_get_or_create_sess(const char *sessname, struct rnbd_clt_session *sess; struct rtrs_attrs attrs; int err; - bool first; + bool first = false; struct rtrs_clt_ops rtrs_ops; sess = find_or_create_sess(sessname, &first); - if (sess == ERR_PTR(-ENOMEM)) - return ERR_PTR(-ENOMEM); - else if (!first) + if (!first) return sess; if (!path_cnt) { From patchwork Mon Apr 19 07:37:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210995 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C3ECC4363F for ; Mon, 19 Apr 2021 07:38:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 177FB61166 for ; Mon, 19 Apr 2021 07:38:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237932AbhDSHi3 (ORCPT ); Mon, 19 Apr 2021 03:38:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237892AbhDSHi3 (ORCPT ); Mon, 19 Apr 2021 03:38:29 -0400 Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0461C061760 for ; Mon, 19 Apr 2021 00:37:59 -0700 (PDT) Received: by mail-ed1-x52e.google.com with SMTP id o20so13142697edc.7 for ; Mon, 19 Apr 2021 00:37:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kudgbHD2vmKiyqxiiVxPOr/XbfnTQZ5BaCjcZ6vN5kA=; b=cAEMqMoFRRxpYABu7CT6sZywZZzoCwlm11yelZns/FpQ4KTs1FaxNIOZtyURy3Qa4A dc2p5yparElIgfCYC+F867aLypZ/vM1V/tUCpo3kXYLqrEk6XEn7cPRKynBmWHnlEar7 +/UEOUgsGs1mzjfEq7VttaWlXzVNXzKeIk8HzhB0wtFauNN74XPetX45K/Uj3nuJ1Mkr 3+yk7tmZEqfwGAbXcOZJEdvnA+9YByVYgoV0BMhw8yavn5XlW1IsHyAUbpTnm9fURKAR H90XAijS4edGboSGm1XMK7UfM4rsDS0IJ7BNj7EnQLtmqQmEueXlWRwiMbzGHtiJcyPf LqPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kudgbHD2vmKiyqxiiVxPOr/XbfnTQZ5BaCjcZ6vN5kA=; b=TmhA0QHqXh4lw2oMkIZ9otN8NZn0KJyCEW3SpNbYryCg4/UzHN9Opkh/evvJwQwC1M CQnbFy3qkfpDtjiVWRcHsnt5A5tUafNJ5s3PrLBoiGQm8PkDIREBmW8UIJQJAXal3Q4X 8372hAYiVOWV/+bHWi8mw4gRcWODXv4mu9UpSxJYxCd0MBbQQk+Q2lGfQnz/U2uK/TBF TRYT1tkQKUN/LJr5hRlZEgMG1vtUlp8qSz9zgY4JccUSsakrqtaAclNO/JeHQ1ck+n2h k2xmHW9e/7V0raFnpuiYCWaZIU4GowYmeklA34QFZHTyM2XqBLOKpi+DtjymKbGyvqL5 VoeA== X-Gm-Message-State: AOAM531M5JvA8aMK7tiN1wozLonglKIJoXeH6VoaktP02JTSHblmRhjZ a4jrxsnNUIYlwm8Rr541BZrHQA9p1d6WQcbq X-Google-Smtp-Source: ABdhPJwTR00kqaO1TnkeeWVWRbaGdbptxVLaJJA68SypwcteftRyqTU0tVhdYBOLFQb7fN6WzK/Uaw== X-Received: by 2002:aa7:c7c5:: with SMTP id o5mr23756133eds.31.1618817878464; Mon, 19 Apr 2021 00:37:58 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:58 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Gioh Kim , Gioh Kim Subject: [PATCHv5 for-next 12/19] block/rnbd-clt: Fix missing a memory free when unloading the module Date: Mon, 19 Apr 2021 09:37:15 +0200 Message-Id: <20210419073722.15351-13-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Gioh Kim When unloading the rnbd-clt module, it does not free a memory including the filename of the symbolic link to /sys/block/rnbdX. It is found by kmemleak as below. unreferenced object 0xffff9f1a83d3c740 (size 16): comm "bash", pid 736, jiffies 4295179665 (age 9841.310s) hex dump (first 16 bytes): 21 64 65 76 21 6e 75 6c 6c 62 30 40 62 6c 61 00 !dev!nullb0@bla. backtrace: [<0000000039f0c55e>] 0xffffffffc0456c24 [<000000001aab9513>] kernfs_fop_write+0xcf/0x1c0 [<00000000db5aa4b3>] vfs_write+0xdb/0x1d0 [<000000007a2e2207>] ksys_write+0x65/0xe0 [<00000000055e280a>] do_syscall_64+0x50/0x1b0 [<00000000c2b51831>] entry_SYSCALL_64_after_hwframe+0x49/0xbe Signed-off-by: Gioh Kim Signed-off-by: Jack Wang --- drivers/block/rnbd/rnbd-clt-sysfs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c index 58c2cc0725b6..49015f428e67 100644 --- a/drivers/block/rnbd/rnbd-clt-sysfs.c +++ b/drivers/block/rnbd/rnbd-clt-sysfs.c @@ -432,10 +432,14 @@ void rnbd_clt_remove_dev_symlink(struct rnbd_clt_dev *dev) * i.e. rnbd_clt_unmap_dev_store() leading to a sysfs warning because * of sysfs link already was removed already. */ - if (dev->blk_symlink_name && try_module_get(THIS_MODULE)) { - sysfs_remove_link(rnbd_devs_kobj, dev->blk_symlink_name); + if (dev->blk_symlink_name) { + if (try_module_get(THIS_MODULE)) { + sysfs_remove_link(rnbd_devs_kobj, dev->blk_symlink_name); + module_put(THIS_MODULE); + } + /* It should be freed always. */ kfree(dev->blk_symlink_name); - module_put(THIS_MODULE); + dev->blk_symlink_name = NULL; } } From patchwork Mon Apr 19 07:37:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210993 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5205C43461 for ; Mon, 19 Apr 2021 07:38:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A4B3C6102A for ; Mon, 19 Apr 2021 07:38:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237957AbhDSHib (ORCPT ); Mon, 19 Apr 2021 03:38:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237919AbhDSHia (ORCPT ); Mon, 19 Apr 2021 03:38:30 -0400 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06717C061761 for ; Mon, 19 Apr 2021 00:38:01 -0700 (PDT) Received: by mail-ed1-x52a.google.com with SMTP id i3so13745974edt.1 for ; Mon, 19 Apr 2021 00:38:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bLmnUWxXmpjLG20WaKKtH95Yk3U4kV8YsSNy20QAf+E=; b=f9R2wpVPRVGoY9OpAGeZteNU7r7gkoPmJ0TZVfaXa4s0vWtuNhxK4bLeRurtx9ILCW 083wuhrQFRsILGizsDaOs+jQtLKFME7xt/syP9GGXONrtHn/XuyDmhNUsymj3oSDdO/k ZZX6Xhc7FOfYgCuTaBv6kqoPcjzsPGG1ZAAns1lC7mNlc+/bqA4dnbTJPPGxWGG5iJp8 pPDY/oxicfOPiJ2EwrOG6ZewcHgzMhSodQ0e8BEN5LaEmstzHJuIMJvDNNNUlQPkLnAm YKxGa/WWq692Uj8hNSfGMmKiyJjTcGUa5pSa5lAAc8e9S740N/Xoc813vczX+sbYE2j+ qPxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bLmnUWxXmpjLG20WaKKtH95Yk3U4kV8YsSNy20QAf+E=; b=LzatKMdiQi+/VnUvVF8ckWdmmN4gVoEbjBwZ/BCPznyVzdqZgNP1WUbdtHH7fmvgIJ zxFCeY6MWWul/PItHF0vfG9rjeqqtzz3U2cA35jfnmOzrXh7uTXD1jMEwx+ylImnfeoZ rsTinKa6W0pkALnB6SrUeZ5ThyWkV32+cMCCbGc3eCWE1Gyw2c+LTzL2FpY9Yrl2/22u UR+CRz69SXpZXY1TezBMOO8k3beU6KlTVqxg7F6haXPedOvresTnUm3E123b2J8Ujsq0 2Zm+H429R84LIoL3QRTxfbAVlyOdw+jXqBSbwyNQQswJv2E3wgUztgylOr5a+3fbULCb Lzuw== X-Gm-Message-State: AOAM530hEEd/sS1ckLmFNYz0jASalcCPP68tqF2mI3OA3IEnV6WjhrCl AjrbCf/QC0v+P9BTXtVCAZvvQcDUXlRqNveX X-Google-Smtp-Source: ABdhPJwaAUSC6YJtt4A/kYIkZHCK1+HWc7Zi9u1daErbvXgqRUeZfaJjaoASMNBaiMdEujiv2Zff0A== X-Received: by 2002:a50:f395:: with SMTP id g21mr24468317edm.238.1618817879432; Mon, 19 Apr 2021 00:37:59 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:37:59 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Gioh Kim , Leon Romanovsky , linux-rdma@vger.kernel.org, Gioh Kim , Jason Gunthorpe Subject: [PATCHv5 for-next 13/19] block/rnbd-clt: Support polling mode for IO latency optimization Date: Mon, 19 Apr 2021 09:37:16 +0200 Message-Id: <20210419073722.15351-14-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Gioh Kim RNBD can make double-queues for irq-mode and poll-mode. For example, on 4-CPU system 8 request-queues are created, 4 for irq-mode and 4 for poll-mode. If the IO has HIPRI flag, the block-layer will call .poll function of RNBD. Then IO is sent to the poll-mode queue. Add optional nr_poll_queues argument for map_devices interface. To support polling of RNBD, RTRS client creates connections for both of irq-mode and direct-poll-mode. For example, on 4-CPU system it could've create 5 connections: con[0] => user message (softirq cq) con[1:4] => softirq cq After this patch, it can create 9 connections: con[0] => user message (softirq cq) con[1:4] => softirq cq con[5:8] => DIRECT-POLL cq Cc: Leon Romanovsky Cc: linux-rdma@vger.kernel.org Signed-off-by: Gioh Kim Signed-off-by: Jack Wang Acked-by: Jason Gunthorpe Reviewed-by: Leon Romanovsky --- drivers/block/rnbd/rnbd-clt-sysfs.c | 55 ++++++++++++---- drivers/block/rnbd/rnbd-clt.c | 89 +++++++++++++++++++++++--- drivers/block/rnbd/rnbd-clt.h | 5 +- drivers/infiniband/ulp/rtrs/rtrs-clt.c | 62 ++++++++++++++---- drivers/infiniband/ulp/rtrs/rtrs-pri.h | 1 + drivers/infiniband/ulp/rtrs/rtrs.h | 3 +- 6 files changed, 181 insertions(+), 34 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c index 49015f428e67..2b6305ecfd5f 100644 --- a/drivers/block/rnbd/rnbd-clt-sysfs.c +++ b/drivers/block/rnbd/rnbd-clt-sysfs.c @@ -34,6 +34,7 @@ enum { RNBD_OPT_DEV_PATH = 1 << 2, RNBD_OPT_ACCESS_MODE = 1 << 3, RNBD_OPT_SESSNAME = 1 << 6, + RNBD_OPT_NR_POLL_QUEUES = 1 << 7, }; static const unsigned int rnbd_opt_mandatory[] = { @@ -42,12 +43,13 @@ static const unsigned int rnbd_opt_mandatory[] = { }; static const match_table_t rnbd_opt_tokens = { - {RNBD_OPT_PATH, "path=%s" }, - {RNBD_OPT_DEV_PATH, "device_path=%s"}, - {RNBD_OPT_DEST_PORT, "dest_port=%d" }, - {RNBD_OPT_ACCESS_MODE, "access_mode=%s"}, - {RNBD_OPT_SESSNAME, "sessname=%s" }, - {RNBD_OPT_ERR, NULL }, + {RNBD_OPT_PATH, "path=%s" }, + {RNBD_OPT_DEV_PATH, "device_path=%s" }, + {RNBD_OPT_DEST_PORT, "dest_port=%d" }, + {RNBD_OPT_ACCESS_MODE, "access_mode=%s" }, + {RNBD_OPT_SESSNAME, "sessname=%s" }, + {RNBD_OPT_NR_POLL_QUEUES, "nr_poll_queues=%d" }, + {RNBD_OPT_ERR, NULL }, }; struct rnbd_map_options { @@ -57,6 +59,7 @@ struct rnbd_map_options { char *pathname; u16 *dest_port; enum rnbd_access_mode *access_mode; + u32 *nr_poll_queues; }; static int rnbd_clt_parse_map_options(const char *buf, size_t max_path_cnt, @@ -68,7 +71,7 @@ static int rnbd_clt_parse_map_options(const char *buf, size_t max_path_cnt, int opt_mask = 0; int token; int ret = -EINVAL; - int i, dest_port; + int i, dest_port, nr_poll_queues; int p_cnt = 0; options = kstrdup(buf, GFP_KERNEL); @@ -178,6 +181,19 @@ static int rnbd_clt_parse_map_options(const char *buf, size_t max_path_cnt, kfree(p); break; + case RNBD_OPT_NR_POLL_QUEUES: + if (match_int(args, &nr_poll_queues) || nr_poll_queues < -1 || + nr_poll_queues > (int)nr_cpu_ids) { + pr_err("bad nr_poll_queues parameter '%d'\n", + nr_poll_queues); + ret = -EINVAL; + goto out; + } + if (nr_poll_queues == -1) + nr_poll_queues = nr_cpu_ids; + *opt->nr_poll_queues = nr_poll_queues; + break; + default: pr_err("map_device: Unknown parameter or missing value '%s'\n", p); @@ -227,6 +243,19 @@ static ssize_t state_show(struct kobject *kobj, static struct kobj_attribute rnbd_clt_state_attr = __ATTR_RO(state); +static ssize_t nr_poll_queues_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) +{ + struct rnbd_clt_dev *dev; + + dev = container_of(kobj, struct rnbd_clt_dev, kobj); + + return sysfs_emit(page, "%d\n", dev->nr_poll_queues); +} + +static struct kobj_attribute rnbd_clt_nr_poll_queues = + __ATTR_RO(nr_poll_queues); + static ssize_t mapping_path_show(struct kobject *kobj, struct kobj_attribute *attr, char *page) { @@ -421,6 +450,7 @@ static struct attribute *rnbd_dev_attrs[] = { &rnbd_clt_state_attr.attr, &rnbd_clt_session_attr.attr, &rnbd_clt_access_mode.attr, + &rnbd_clt_nr_poll_queues.attr, NULL, }; @@ -469,7 +499,7 @@ static ssize_t rnbd_clt_map_device_show(struct kobject *kobj, char *page) { return scnprintf(page, PAGE_SIZE, - "Usage: echo \"[dest_port=server port number] sessname= path=<[srcaddr@]dstaddr> [path=<[srcaddr@]dstaddr>] device_path= [access_mode=]\" > %s\n\naddr ::= [ ip: | ip: | gid: ]\n", + "Usage: echo \"[dest_port=server port number] sessname= path=<[srcaddr@]dstaddr> [path=<[srcaddr@]dstaddr>] device_path= [access_mode=] [nr_poll_queues=]\" > %s\n\naddr ::= [ ip: | ip: | gid: ]\n", attr->attr.name); } @@ -541,6 +571,7 @@ static ssize_t rnbd_clt_map_device_store(struct kobject *kobj, char sessname[NAME_MAX]; enum rnbd_access_mode access_mode = RNBD_ACCESS_RW; u16 port_nr = RTRS_PORT; + u32 nr_poll_queues = 0; struct sockaddr_storage *addrs; struct rtrs_addr paths[6]; @@ -552,6 +583,7 @@ static ssize_t rnbd_clt_map_device_store(struct kobject *kobj, opt.pathname = pathname; opt.dest_port = &port_nr; opt.access_mode = &access_mode; + opt.nr_poll_queues = &nr_poll_queues; addrs = kcalloc(ARRAY_SIZE(paths) * 2, sizeof(*addrs), GFP_KERNEL); if (!addrs) return -ENOMEM; @@ -565,12 +597,13 @@ static ssize_t rnbd_clt_map_device_store(struct kobject *kobj, if (ret) goto out; - pr_info("Mapping device %s on session %s, (access_mode: %s)\n", + pr_info("Mapping device %s on session %s, (access_mode: %s, nr_poll_queues: %d)\n", pathname, sessname, - rnbd_access_mode_str(access_mode)); + rnbd_access_mode_str(access_mode), + nr_poll_queues); dev = rnbd_clt_map_device(sessname, paths, path_cnt, port_nr, pathname, - access_mode); + access_mode, nr_poll_queues); if (IS_ERR(dev)) { ret = PTR_ERR(dev); goto out; diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index 9b44aac680d5..ea98124e8ce9 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -1165,9 +1165,54 @@ static blk_status_t rnbd_queue_rq(struct blk_mq_hw_ctx *hctx, return ret; } +static int rnbd_rdma_poll(struct blk_mq_hw_ctx *hctx) +{ + struct rnbd_queue *q = hctx->driver_data; + struct rnbd_clt_dev *dev = q->dev; + int cnt; + + cnt = rtrs_clt_rdma_cq_direct(dev->sess->rtrs, hctx->queue_num); + return cnt; +} + +static int rnbd_rdma_map_queues(struct blk_mq_tag_set *set) +{ + struct rnbd_clt_session *sess = set->driver_data; + + /* shared read/write queues */ + set->map[HCTX_TYPE_DEFAULT].nr_queues = num_online_cpus(); + set->map[HCTX_TYPE_DEFAULT].queue_offset = 0; + set->map[HCTX_TYPE_READ].nr_queues = num_online_cpus(); + set->map[HCTX_TYPE_READ].queue_offset = 0; + blk_mq_map_queues(&set->map[HCTX_TYPE_DEFAULT]); + blk_mq_map_queues(&set->map[HCTX_TYPE_READ]); + + if (sess->nr_poll_queues) { + /* dedicated queue for poll */ + set->map[HCTX_TYPE_POLL].nr_queues = sess->nr_poll_queues; + set->map[HCTX_TYPE_POLL].queue_offset = set->map[HCTX_TYPE_READ].queue_offset + + set->map[HCTX_TYPE_READ].nr_queues; + blk_mq_map_queues(&set->map[HCTX_TYPE_POLL]); + pr_info("[session=%s] mapped %d/%d/%d default/read/poll queues.\n", + sess->sessname, + set->map[HCTX_TYPE_DEFAULT].nr_queues, + set->map[HCTX_TYPE_READ].nr_queues, + set->map[HCTX_TYPE_POLL].nr_queues); + } else { + pr_info("[session=%s] mapped %d/%d default/read queues.\n", + sess->sessname, + set->map[HCTX_TYPE_DEFAULT].nr_queues, + set->map[HCTX_TYPE_READ].nr_queues); + } + + return 0; +} + static struct blk_mq_ops rnbd_mq_ops = { .queue_rq = rnbd_queue_rq, .complete = rnbd_softirq_done_fn, + .map_queues = rnbd_rdma_map_queues, + .poll = rnbd_rdma_poll, }; static int setup_mq_tags(struct rnbd_clt_session *sess) @@ -1181,7 +1226,15 @@ static int setup_mq_tags(struct rnbd_clt_session *sess) tag_set->flags = BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_TAG_QUEUE_SHARED; tag_set->cmd_size = sizeof(struct rnbd_iu) + RNBD_RDMA_SGL_SIZE; - tag_set->nr_hw_queues = num_online_cpus(); + + /* for HCTX_TYPE_DEFAULT, HCTX_TYPE_READ, HCTX_TYPE_POLL */ + tag_set->nr_maps = sess->nr_poll_queues ? HCTX_MAX_TYPES : 2; + /* + * HCTX_TYPE_DEFAULT and HCTX_TYPE_READ share one set of queues + * others are for HCTX_TYPE_POLL + */ + tag_set->nr_hw_queues = num_online_cpus() + sess->nr_poll_queues; + tag_set->driver_data = sess; return blk_mq_alloc_tag_set(tag_set); } @@ -1189,7 +1242,7 @@ static int setup_mq_tags(struct rnbd_clt_session *sess) static struct rnbd_clt_session * find_and_get_or_create_sess(const char *sessname, const struct rtrs_addr *paths, - size_t path_cnt, u16 port_nr) + size_t path_cnt, u16 port_nr, u32 nr_poll_queues) { struct rnbd_clt_session *sess; struct rtrs_attrs attrs; @@ -1198,6 +1251,17 @@ find_and_get_or_create_sess(const char *sessname, struct rtrs_clt_ops rtrs_ops; sess = find_or_create_sess(sessname, &first); + if (sess == ERR_PTR(-ENOMEM)) + return ERR_PTR(-ENOMEM); + else if ((nr_poll_queues && !first) || (!nr_poll_queues && sess->nr_poll_queues)) { + /* + * A device MUST have its own session to use the polling-mode. + * It must fail to map new device with the same session. + */ + err = -EINVAL; + goto put_sess; + } + if (!first) return sess; @@ -1219,7 +1283,7 @@ find_and_get_or_create_sess(const char *sessname, 0, /* Do not use pdu of rtrs */ RECONNECT_DELAY, BMAX_SEGMENTS, BLK_MAX_SEGMENT_SIZE, - MAX_RECONNECTS); + MAX_RECONNECTS, nr_poll_queues); if (IS_ERR(sess->rtrs)) { err = PTR_ERR(sess->rtrs); goto wake_up_and_put; @@ -1227,6 +1291,7 @@ find_and_get_or_create_sess(const char *sessname, rtrs_clt_query(sess->rtrs, &attrs); sess->max_io_size = attrs.max_io_size; sess->queue_depth = attrs.queue_depth; + sess->nr_poll_queues = nr_poll_queues; err = setup_mq_tags(sess); if (err) @@ -1370,7 +1435,8 @@ static int rnbd_client_setup_device(struct rnbd_clt_dev *dev) static struct rnbd_clt_dev *init_dev(struct rnbd_clt_session *sess, enum rnbd_access_mode access_mode, - const char *pathname) + const char *pathname, + u32 nr_poll_queues) { struct rnbd_clt_dev *dev; int ret; @@ -1379,7 +1445,12 @@ static struct rnbd_clt_dev *init_dev(struct rnbd_clt_session *sess, if (!dev) return ERR_PTR(-ENOMEM); - dev->hw_queues = kcalloc(nr_cpu_ids, sizeof(*dev->hw_queues), + /* + * nr_cpu_ids: the number of softirq queues + * nr_poll_queues: the number of polling queues + */ + dev->hw_queues = kcalloc(nr_cpu_ids + nr_poll_queues, + sizeof(*dev->hw_queues), GFP_KERNEL); if (!dev->hw_queues) { ret = -ENOMEM; @@ -1405,6 +1476,7 @@ static struct rnbd_clt_dev *init_dev(struct rnbd_clt_session *sess, dev->clt_device_id = ret; dev->sess = sess; dev->access_mode = access_mode; + dev->nr_poll_queues = nr_poll_queues; mutex_init(&dev->lock); refcount_set(&dev->refcount, 1); dev->dev_state = DEV_STATE_INIT; @@ -1491,7 +1563,8 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname, struct rtrs_addr *paths, size_t path_cnt, u16 port_nr, const char *pathname, - enum rnbd_access_mode access_mode) + enum rnbd_access_mode access_mode, + u32 nr_poll_queues) { struct rnbd_clt_session *sess; struct rnbd_clt_dev *dev; @@ -1500,11 +1573,11 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname, if (unlikely(exists_devpath(pathname, sessname))) return ERR_PTR(-EEXIST); - sess = find_and_get_or_create_sess(sessname, paths, path_cnt, port_nr); + sess = find_and_get_or_create_sess(sessname, paths, path_cnt, port_nr, nr_poll_queues); if (IS_ERR(sess)) return ERR_CAST(sess); - dev = init_dev(sess, access_mode, pathname); + dev = init_dev(sess, access_mode, pathname, nr_poll_queues); if (IS_ERR(dev)) { pr_err("map_device: failed to map device '%s' from session %s, can't initialize device, err: %ld\n", pathname, sess->sessname, PTR_ERR(dev)); diff --git a/drivers/block/rnbd/rnbd-clt.h b/drivers/block/rnbd/rnbd-clt.h index 714d426b449b..451e7383738f 100644 --- a/drivers/block/rnbd/rnbd-clt.h +++ b/drivers/block/rnbd/rnbd-clt.h @@ -90,6 +90,7 @@ struct rnbd_clt_session { int queue_depth; u32 max_io_size; struct blk_mq_tag_set tag_set; + u32 nr_poll_queues; struct mutex lock; /* protects state and devs_list */ struct list_head devs_list; /* list of struct rnbd_clt_dev */ refcount_t refcount; @@ -118,6 +119,7 @@ struct rnbd_clt_dev { enum rnbd_clt_dev_state dev_state; char *pathname; enum rnbd_access_mode access_mode; + u32 nr_poll_queues; bool read_only; bool rotational; bool wc; @@ -147,7 +149,8 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname, struct rtrs_addr *paths, size_t path_cnt, u16 port_nr, const char *pathname, - enum rnbd_access_mode access_mode); + enum rnbd_access_mode access_mode, + u32 nr_poll_queues); int rnbd_clt_unmap_device(struct rnbd_clt_dev *dev, bool force, const struct attribute *sysfs_self); diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c index 7efd49bdc78c..eb0a5e2058ae 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c @@ -174,7 +174,7 @@ struct rtrs_clt_con *rtrs_permit_to_clt_con(struct rtrs_clt_sess *sess, int id = 0; if (likely(permit->con_type == RTRS_IO_CON)) - id = (permit->cpu_id % (sess->s.con_num - 1)) + 1; + id = (permit->cpu_id % (sess->s.irq_con_num - 1)) + 1; return to_clt_con(sess->s.con[id]); } @@ -1400,23 +1400,29 @@ static void rtrs_clt_close_work(struct work_struct *work); static struct rtrs_clt_sess *alloc_sess(struct rtrs_clt *clt, const struct rtrs_addr *path, size_t con_num, u16 max_segments, - size_t max_segment_size) + size_t max_segment_size, u32 nr_poll_queues) { struct rtrs_clt_sess *sess; int err = -ENOMEM; int cpu; + size_t total_con; sess = kzalloc(sizeof(*sess), GFP_KERNEL); if (!sess) goto err; - /* Extra connection for user messages */ - con_num += 1; - - sess->s.con = kcalloc(con_num, sizeof(*sess->s.con), GFP_KERNEL); + /* + * irqmode and poll + * +1: Extra connection for user messages + */ + total_con = con_num + nr_poll_queues + 1; + sess->s.con = kcalloc(total_con, sizeof(*sess->s.con), GFP_KERNEL); if (!sess->s.con) goto err_free_sess; + sess->s.con_num = total_con; + sess->s.irq_con_num = con_num + 1; + sess->stats = kzalloc(sizeof(*sess->stats), GFP_KERNEL); if (!sess->stats) goto err_free_con; @@ -1435,7 +1441,6 @@ static struct rtrs_clt_sess *alloc_sess(struct rtrs_clt *clt, memcpy(&sess->s.src_addr, path->src, rdma_addr_size((struct sockaddr *)path->src)); strlcpy(sess->s.sessname, clt->sessname, sizeof(sess->s.sessname)); - sess->s.con_num = con_num; sess->clt = clt; sess->max_pages_per_mr = max_segments * max_segment_size >> 12; init_waitqueue_head(&sess->state_wq); @@ -1576,9 +1581,14 @@ static int create_con_cq_qp(struct rtrs_clt_con *con) } cq_size = max_send_wr + max_recv_wr; cq_vector = con->cpu % sess->s.dev->ib_dev->num_comp_vectors; - err = rtrs_cq_qp_create(&sess->s, &con->c, sess->max_send_sge, - cq_vector, cq_size, max_send_wr, - max_recv_wr, IB_POLL_SOFTIRQ); + if (con->c.cid >= sess->s.irq_con_num) + err = rtrs_cq_qp_create(&sess->s, &con->c, sess->max_send_sge, + cq_vector, cq_size, max_send_wr, + max_recv_wr, IB_POLL_DIRECT); + else + err = rtrs_cq_qp_create(&sess->s, &con->c, sess->max_send_sge, + cq_vector, cq_size, max_send_wr, + max_recv_wr, IB_POLL_SOFTIRQ); /* * In case of error we do not bother to clean previous allocations, * since destroy_con_cq_qp() must be called. @@ -2631,6 +2641,7 @@ static void free_clt(struct rtrs_clt *clt) * @max_segment_size: Max. size of one segment * @max_reconnect_attempts: Number of times to reconnect on error before giving * up, 0 for * disabled, -1 for forever + * @nr_poll_queues: number of polling mode connection using IB_POLL_DIRECT flag * * Starts session establishment with the rtrs_server. The function can block * up to ~2000ms before it returns. @@ -2644,7 +2655,7 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops, size_t pdu_sz, u8 reconnect_delay_sec, u16 max_segments, size_t max_segment_size, - s16 max_reconnect_attempts) + s16 max_reconnect_attempts, u32 nr_poll_queues) { struct rtrs_clt_sess *sess, *tmp; struct rtrs_clt *clt; @@ -2662,7 +2673,7 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops, struct rtrs_clt_sess *sess; sess = alloc_sess(clt, &paths[i], nr_cpu_ids, - max_segments, max_segment_size); + max_segments, max_segment_size, nr_poll_queues); if (IS_ERR(sess)) { err = PTR_ERR(sess); goto close_all_sess; @@ -2887,6 +2898,31 @@ int rtrs_clt_request(int dir, struct rtrs_clt_req_ops *ops, } EXPORT_SYMBOL(rtrs_clt_request); +int rtrs_clt_rdma_cq_direct(struct rtrs_clt *clt, unsigned int index) +{ + int cnt; + struct rtrs_con *con; + struct rtrs_clt_sess *sess; + struct path_it it; + + rcu_read_lock(); + for (path_it_init(&it, clt); + (sess = it.next_path(&it)) && it.i < it.clt->paths_num; it.i++) { + if (READ_ONCE(sess->state) != RTRS_CLT_CONNECTED) + continue; + + con = sess->s.con[index + 1]; + cnt = ib_process_cq_direct(con->cq, -1); + if (cnt) + break; + } + path_it_deinit(&it); + rcu_read_unlock(); + + return cnt; +} +EXPORT_SYMBOL(rtrs_clt_rdma_cq_direct); + /** * rtrs_clt_query() - queries RTRS session attributes *@clt: session pointer @@ -2916,7 +2952,7 @@ int rtrs_clt_create_path_from_sysfs(struct rtrs_clt *clt, int err; sess = alloc_sess(clt, addr, nr_cpu_ids, clt->max_segments, - clt->max_segment_size); + clt->max_segment_size, 0); if (IS_ERR(sess)) return PTR_ERR(sess); diff --git a/drivers/infiniband/ulp/rtrs/rtrs-pri.h b/drivers/infiniband/ulp/rtrs/rtrs-pri.h index 8caad0a2322b..00eb45053339 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs-pri.h +++ b/drivers/infiniband/ulp/rtrs/rtrs-pri.h @@ -101,6 +101,7 @@ struct rtrs_sess { uuid_t uuid; struct rtrs_con **con; unsigned int con_num; + unsigned int irq_con_num; unsigned int recon_cnt; struct rtrs_ib_dev *dev; int dev_ref; diff --git a/drivers/infiniband/ulp/rtrs/rtrs.h b/drivers/infiniband/ulp/rtrs/rtrs.h index 2db1b5eb3ab0..f891fbe7abe6 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs.h +++ b/drivers/infiniband/ulp/rtrs/rtrs.h @@ -59,7 +59,7 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops, size_t pdu_sz, u8 reconnect_delay_sec, u16 max_segments, size_t max_segment_size, - s16 max_reconnect_attempts); + s16 max_reconnect_attempts, u32 nr_poll_queues); void rtrs_clt_close(struct rtrs_clt *sess); @@ -103,6 +103,7 @@ int rtrs_clt_request(int dir, struct rtrs_clt_req_ops *ops, struct rtrs_clt *sess, struct rtrs_permit *permit, const struct kvec *vec, size_t nr, size_t len, struct scatterlist *sg, unsigned int sg_cnt); +int rtrs_clt_rdma_cq_direct(struct rtrs_clt *clt, unsigned int index); /** * rtrs_attrs - RTRS session attributes From patchwork Mon Apr 19 07:37:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12211003 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C0DAC43603 for ; Mon, 19 Apr 2021 07:38:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5B8C6610CC for ; Mon, 19 Apr 2021 07:38:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237967AbhDSHib (ORCPT ); Mon, 19 Apr 2021 03:38:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237919AbhDSHib (ORCPT ); Mon, 19 Apr 2021 03:38:31 -0400 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF943C061763 for ; Mon, 19 Apr 2021 00:38:01 -0700 (PDT) Received: by mail-ed1-x52a.google.com with SMTP id e7so39339141edu.10 for ; Mon, 19 Apr 2021 00:38:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IiTwN52XJKi66N76pNHN0fIgFTasQJk4pE4Qk8xQaVQ=; b=CGGBeSLCPzfBJJIRQeB4drNEj0Ni7bvt8JZkARgO1N91wIMNXGFU4JOIu3/j6GD/Hy vVFgAsDBETHfxIUonGk0EYrUySNEL++1/872AxXbK4jrZOUFtEnvnvcx8eYz6r5mIkNC hkWVhFTEeTg3Lz2Ipr/ZMbe2ohO71/gRcNX9HcB6ye75GYQ5OrF+cg5sb+nxGh60EIkb kHXIYjT+azgKVcr3HAqdh8n+AAzNyGv+g+Ox+LgCWnAqCvdi/dhtcRwN+pWXCgMmEO0x jnhv1edYhmXZwwPKXPjMEPl3R1Ag42s9EfFtlSXLgp2bT0qIJtLtILZGrxYO9qgkoNyu u/xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IiTwN52XJKi66N76pNHN0fIgFTasQJk4pE4Qk8xQaVQ=; b=F/vqIAewz6vLwkI5Fb0hTdmyYMIFBRYl0MaMwzsoHKw3/3kwYAVNWCi83tnOfATzj6 Yy8pDTnOZv8PgeQLydvEVtk2oqLMGZM6WVxvW+/L0j9MUTKOuKv/fb/lk+WX9dDgpxEI ZQGOzlFtK26USEGH0xr6CInhEEe49ucBoIu3Y/9TKtZt2JUQg4DaVxMyr9qJqqzw/eG2 5PzEAKLY/eEYwnFDVqm1jxnRrtvFDSPS0RhdmbzuZsD7rPFu+IP/lcgOs3VlQ+874Ps4 z42DLO2SndHLspGIkaLy9gysFMnuBmv4lTAXa/TJFYOCirmaZaHO4SMW9rULKKgE9DAy H9sA== X-Gm-Message-State: AOAM531MjHueUrv18EcFGvtJXJYDVFyKeHkhsjwrjG2xJHunFXosF7v8 A3DEYo3fvni+pO3SFfukEJd3OLAEmWRvtko6 X-Google-Smtp-Source: ABdhPJzJ4bulNIFQuTKPJt/dbio7Zwyh0v37DZ/vNOlb9Rn1XnmjypcgAQgK3jX1mQjIrCJXMjas3Q== X-Received: by 2002:aa7:da01:: with SMTP id r1mr15576469eds.197.1618817880374; Mon, 19 Apr 2021 00:38:00 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.37.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:38:00 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Gioh Kim , Jack Wang Subject: [PATCHv5 for-next 14/19] Documentation/ABI/rnbd-clt: Add description for nr_poll_queues Date: Mon, 19 Apr 2021 09:37:17 +0200 Message-Id: <20210419073722.15351-15-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org describe how to set nr_poll_queues and enable the polling Signed-off-by: Gioh Kim Acked-by: Jack Wang --- Documentation/ABI/testing/sysfs-block-rnbd | 6 ++++++ Documentation/ABI/testing/sysfs-class-rnbd-client | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-block-rnbd b/Documentation/ABI/testing/sysfs-block-rnbd index ec716e1c31a8..80b420b5d6b8 100644 --- a/Documentation/ABI/testing/sysfs-block-rnbd +++ b/Documentation/ABI/testing/sysfs-block-rnbd @@ -56,3 +56,9 @@ Date: Feb 2020 KernelVersion: 5.7 Contact: Jack Wang Danil Kipnis Description: Remap the disconnected device if the session is not destroyed yet. + +What: /sys/block/rnbd/rnbd/nr_poll_queues +Date: Feb 2020 +KernelVersion: 5.7 +Contact: Jack Wang Danil Kipnis +Description: Contains the number of poll-mode queues diff --git a/Documentation/ABI/testing/sysfs-class-rnbd-client b/Documentation/ABI/testing/sysfs-class-rnbd-client index 2aa05b3e348e..0b5997ab3365 100644 --- a/Documentation/ABI/testing/sysfs-class-rnbd-client +++ b/Documentation/ABI/testing/sysfs-class-rnbd-client @@ -85,6 +85,19 @@ Description: Expected format is the following:: By default "rw" is used. + nr_poll_queues + specifies the number of poll-mode queues. If the IO has HIPRI flag, + the block-layer will send the IO via the poll-mode queue. + For fast network and device the polling is faster than interrupt-base + IO handling because it saves time for context switching, switching to + another process, handling the interrupt and switching back to the + issuing process. + + Set -1 if you want to set it as the number of CPUs + By default rnbd client creates only irq-mode queues. + + NOTICE: MUST make a unique session for a device using the poll-mode queues. + Exit Codes: If the device is already mapped it will fail with EEXIST. If the input From patchwork Mon Apr 19 07:37:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210999 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F212CC43616 for ; Mon, 19 Apr 2021 07:38:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CF4B760FE9 for ; Mon, 19 Apr 2021 07:38:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237973AbhDSHie (ORCPT ); Mon, 19 Apr 2021 03:38:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39634 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237981AbhDSHic (ORCPT ); Mon, 19 Apr 2021 03:38:32 -0400 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1057FC06138B for ; Mon, 19 Apr 2021 00:38:03 -0700 (PDT) Received: by mail-ej1-x634.google.com with SMTP id w3so51384209ejc.4 for ; Mon, 19 Apr 2021 00:38:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6Ol0LrZCvE5dH2E8oH5l2wl0+ueRQwWjooW1k9QXypo=; b=RbMBNs3DQD+nVFI3O/iNsYrbO54hOcK3wJUpUoyj0gaHGQ6W03fNF/7E08xbBqyV2n CXxz5UrCPHClPBFtYNYKYHAeEjiZ0fvhWtpKG/091bF0WngU/mgYa99FkKAGxyfDXJJ4 aU8k/Yp6072rItlde2dXiS4fc+D4BBAAhEiB5s6tPrtGqm6LZdpUsxLprcVyQsVE2SKr 8qc6wVWZ9Q2Y03kzlUGN3K/bQTPeX2P9spvhECgKMw8dzeBk2liY7Of0DbreVgjJ1lo3 nwQRPR5cGdWvZuhrLq6HHxwZC0uA5aruYQG/PX2PHsTI3ONWek6fRFMkVlVwavulm048 tfvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6Ol0LrZCvE5dH2E8oH5l2wl0+ueRQwWjooW1k9QXypo=; b=Le4O2KEChiX0P9CC6dJi6MtSSR6c0dvRs4BsSB4dI2M2slr2dtVxdy7mfy9LNir2s+ 1BjTvUBQU5YbEXcTemXhJmP3EBYIx7Cve6Hj0RE21QZhZ5v+GbkW+pBZcI5yeE86HdQJ 0YgzUWg6BmTWvJmqP3FpPHIwNQGQ+WGwJ5X1ya/TZovVkmAEG8jTBIcIADFlwcM37McM BezpA6SUSREbvGhw4UL9QtpGMmcoJVaaZNs5ajmsZk1zQCqLano0LgAdUSoafKbAQWJG iXI+ARm/PZspHyi9h14/nnz4eTb7VBCCo4kdGBZ4BiWWkdfgtb2ZJmgny9bQ/2G29Kxz PRXA== X-Gm-Message-State: AOAM533eNcrg78wlVc3dAqGXrUEKYEhY1OZCgl5UKS3c27j9U/D/+ik5 on7DQn86YeLiXaw3rWVHfZyB45p6dBbz0Qc+ X-Google-Smtp-Source: ABdhPJyVCfyNTKITacxmTNiOaR3AEHgee/Ayc4fmmxjdpSH+cSNUMHPuXK/3iQeILvQ8LAlXgD5IrQ== X-Received: by 2002:a17:906:7c52:: with SMTP id g18mr20246722ejp.362.1618817881516; Mon, 19 Apr 2021 00:38:01 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.38.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:38:01 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Gioh Kim , Leon Romanovsky , linux-rdma@vger.kernel.org, Aleksei Marov , Gioh Kim , Chaitanya Kulkarni , Jason Gunthorpe Subject: [PATCHv5 for-next 15/19] block/rnbd-srv: Remove unused arguments of rnbd_srv_rdma_ev Date: Mon, 19 Apr 2021 09:37:18 +0200 Message-Id: <20210419073722.15351-16-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Gioh Kim struct rtrs_srv is not used when handling rnbd_srv_rdma_ev messages, so cleaned up rdma_ev function pointer in rtrs_srv_ops also is changed. Cc: Leon Romanovsky Cc: linux-rdma@vger.kernel.org Signed-off-by: Aleksei Marov Signed-off-by: Jack Wang Signed-off-by: Gioh Kim Reviewed-by: Chaitanya Kulkarni Acked-by: Jason Gunthorpe Reviewed-by: Leon Romanovsky --- drivers/block/rnbd/rnbd-srv.c | 39 ++++++++++---------------- drivers/infiniband/ulp/rtrs/rtrs-srv.c | 4 +-- drivers/infiniband/ulp/rtrs/rtrs.h | 3 +- 3 files changed, 18 insertions(+), 28 deletions(-) diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c index a9bb414f7442..abacd9ef10d6 100644 --- a/drivers/block/rnbd/rnbd-srv.c +++ b/drivers/block/rnbd/rnbd-srv.c @@ -114,8 +114,7 @@ rnbd_get_sess_dev(int dev_id, struct rnbd_srv_session *srv_sess) return sess_dev; } -static int process_rdma(struct rtrs_srv *sess, - struct rnbd_srv_session *srv_sess, +static int process_rdma(struct rnbd_srv_session *srv_sess, struct rtrs_srv_op *id, void *data, u32 datalen, const void *usr, size_t usrlen) { @@ -344,8 +343,7 @@ void rnbd_srv_sess_dev_force_close(struct rnbd_srv_sess_dev *sess_dev, mutex_unlock(&sess->lock); } -static int process_msg_close(struct rtrs_srv *rtrs, - struct rnbd_srv_session *srv_sess, +static int process_msg_close(struct rnbd_srv_session *srv_sess, void *data, size_t datalen, const void *usr, size_t usrlen) { @@ -364,20 +362,18 @@ static int process_msg_close(struct rtrs_srv *rtrs, return 0; } -static int process_msg_open(struct rtrs_srv *rtrs, - struct rnbd_srv_session *srv_sess, +static int process_msg_open(struct rnbd_srv_session *srv_sess, const void *msg, size_t len, void *data, size_t datalen); -static int process_msg_sess_info(struct rtrs_srv *rtrs, - struct rnbd_srv_session *srv_sess, +static int process_msg_sess_info(struct rnbd_srv_session *srv_sess, const void *msg, size_t len, void *data, size_t datalen); -static int rnbd_srv_rdma_ev(struct rtrs_srv *rtrs, void *priv, - struct rtrs_srv_op *id, int dir, - void *data, size_t datalen, const void *usr, - size_t usrlen) +static int rnbd_srv_rdma_ev(void *priv, + struct rtrs_srv_op *id, int dir, + void *data, size_t datalen, const void *usr, + size_t usrlen) { struct rnbd_srv_session *srv_sess = priv; const struct rnbd_msg_hdr *hdr = usr; @@ -391,19 +387,16 @@ static int rnbd_srv_rdma_ev(struct rtrs_srv *rtrs, void *priv, switch (type) { case RNBD_MSG_IO: - return process_rdma(rtrs, srv_sess, id, data, datalen, usr, - usrlen); + return process_rdma(srv_sess, id, data, datalen, usr, usrlen); case RNBD_MSG_CLOSE: - ret = process_msg_close(rtrs, srv_sess, data, datalen, - usr, usrlen); + ret = process_msg_close(srv_sess, data, datalen, usr, usrlen); break; case RNBD_MSG_OPEN: - ret = process_msg_open(rtrs, srv_sess, usr, usrlen, - data, datalen); + ret = process_msg_open(srv_sess, usr, usrlen, data, datalen); break; case RNBD_MSG_SESS_INFO: - ret = process_msg_sess_info(rtrs, srv_sess, usr, usrlen, - data, datalen); + ret = process_msg_sess_info(srv_sess, usr, usrlen, data, + datalen); break; default: pr_warn("Received unexpected message type %d with dir %d from session %s\n", @@ -656,8 +649,7 @@ static char *rnbd_srv_get_full_path(struct rnbd_srv_session *srv_sess, return full_path; } -static int process_msg_sess_info(struct rtrs_srv *rtrs, - struct rnbd_srv_session *srv_sess, +static int process_msg_sess_info(struct rnbd_srv_session *srv_sess, const void *msg, size_t len, void *data, size_t datalen) { @@ -698,8 +690,7 @@ find_srv_sess_dev(struct rnbd_srv_session *srv_sess, const char *dev_name) return NULL; } -static int process_msg_open(struct rtrs_srv *rtrs, - struct rnbd_srv_session *srv_sess, +static int process_msg_open(struct rnbd_srv_session *srv_sess, const void *msg, size_t len, void *data, size_t datalen) { diff --git a/drivers/infiniband/ulp/rtrs/rtrs-srv.c b/drivers/infiniband/ulp/rtrs/rtrs-srv.c index d071809e3ed2..f7aa2a7e7442 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs-srv.c +++ b/drivers/infiniband/ulp/rtrs/rtrs-srv.c @@ -998,7 +998,7 @@ static void process_read(struct rtrs_srv_con *con, usr_len = le16_to_cpu(msg->usr_len); data_len = off - usr_len; data = page_address(srv->chunks[buf_id]); - ret = ctx->ops.rdma_ev(srv, srv->priv, id, READ, data, data_len, + ret = ctx->ops.rdma_ev(srv->priv, id, READ, data, data_len, data + data_len, usr_len); if (unlikely(ret)) { @@ -1051,7 +1051,7 @@ static void process_write(struct rtrs_srv_con *con, usr_len = le16_to_cpu(req->usr_len); data_len = off - usr_len; data = page_address(srv->chunks[buf_id]); - ret = ctx->ops.rdma_ev(srv, srv->priv, id, WRITE, data, data_len, + ret = ctx->ops.rdma_ev(srv->priv, id, WRITE, data, data_len, data + data_len, usr_len); if (unlikely(ret)) { rtrs_err_rl(s, diff --git a/drivers/infiniband/ulp/rtrs/rtrs.h b/drivers/infiniband/ulp/rtrs/rtrs.h index f891fbe7abe6..b0f56ffeff88 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs.h +++ b/drivers/infiniband/ulp/rtrs/rtrs.h @@ -139,7 +139,6 @@ struct rtrs_srv_ops { * message for the data transfer will be sent to * the client. - * @sess: Session * @priv: Private data set by rtrs_srv_set_sess_priv() * @id: internal RTRS operation id * @dir: READ/WRITE @@ -153,7 +152,7 @@ struct rtrs_srv_ops { * @usr: The extra user message sent by the client (%vec) * @usrlen: Size of the user message */ - int (*rdma_ev)(struct rtrs_srv *sess, void *priv, + int (*rdma_ev)(void *priv, struct rtrs_srv_op *id, int dir, void *data, size_t datalen, const void *usr, size_t usrlen); From patchwork Mon Apr 19 07:37:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12211001 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 517B7C43460 for ; Mon, 19 Apr 2021 07:38:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 33464610CC for ; Mon, 19 Apr 2021 07:38:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237963AbhDSHie (ORCPT ); Mon, 19 Apr 2021 03:38:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237919AbhDSHid (ORCPT ); Mon, 19 Apr 2021 03:38:33 -0400 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A991EC06138D for ; Mon, 19 Apr 2021 00:38:03 -0700 (PDT) Received: by mail-ed1-x529.google.com with SMTP id i3so13746139edt.1 for ; Mon, 19 Apr 2021 00:38:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=koUJHeoML3k46NNPXj9dMUKxYAz5KAM+xwZ8yCLc7gM=; b=EIqLgm5JkISwRDkiUimpG8pdJXO+7/OwKB+W6AuZaIpKSwmf0YiNlNAf2HOcx/Enav JeCBg6UQrlRXlnzD1W+4Vxu+dg/jIJanpAtqjX0Kf0mwBo8GMBLn/VYxWVPtJtxtTHKj +Qfgd3LeaLJyN00oRUwQA2TFi2YnFS7U8ZAwOq2XEwNts0fDNKQfxwprHQWRuehp7zQv mMfG9NuGvmCHAPhTYSOFnZUNP4L63f4G9+CPeZ0uVUcySdg4v9rFDdd64JkoxjC+X3WG UWktXT9OX/cpDAIGYfDx0+4iwCEPJarwPslyBIcx1vLPc6j6+/XSxhANPMVJVyTulYRm 7hTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=koUJHeoML3k46NNPXj9dMUKxYAz5KAM+xwZ8yCLc7gM=; b=i3cZa9DBxlu91DNhKI6Kl7IUm5rC/beJ57liOqiEMPa+qXsCs9L2dP7Sk/YQlqE03I yhj3MKnrRyrXnFmEKBnRJACh81vnWzs50T+FyC7LjUKRfEKweSKQhaecsAVnZziJHKoW YDX+TqZegSYkfncX3hWLyB7202zwN2DHOCLltsboXAbrBTulqvEBjsGG85LCQo3Fy6h6 8j/O9LzpWQQ2fSgR3IfEXoFzIvYfBIB1F5A6fE/7t7Yy6Mn33VcqI3C/hkoxflVoZ3Jn pieRxKy9/INhVKHyOtYTfhXm8/beURix0z8Y9W1AtOPdlBpvB/tl4/4i5BiIcyRn1JEz rqlw== X-Gm-Message-State: AOAM530b7PQ42szki1wps1yKtNDOWVPbp7XdjvUJwWZoEMMrVR0/9iho lweHZN24OErGcvyq46gtXpH+xHX5w6ZloJja X-Google-Smtp-Source: ABdhPJzekF9b/HaJDbRj1r61YsexOEYOLJ6tTl/xGCLJgYw5WSJs7P0Klmsn4LAjyqL3Bi0NfP5Rog== X-Received: by 2002:a05:6402:3591:: with SMTP id y17mr1977010edc.67.1618817882360; Mon, 19 Apr 2021 00:38:02 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.38.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:38:02 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Md Haris Iqbal , Gioh Kim Subject: [PATCHv5 for-next 16/19] block/rnbd-clt: Generate kobject_uevent when the rnbd device state changes Date: Mon, 19 Apr 2021 09:37:19 +0200 Message-Id: <20210419073722.15351-17-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Md Haris Iqbal When an RTRS session state changes, the transport layer generates an event to RNBD. Then RNBD will change the state of the RNBD client device accordingly. This commit add kobject_uevent when the RNBD device state changes. With this udev rules can be configured to react accordingly. Signed-off-by: Md Haris Iqbal Signed-off-by: Jack Wang Signed-off-by: Gioh Kim --- drivers/block/rnbd/rnbd-clt-sysfs.c | 1 + drivers/block/rnbd/rnbd-clt.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c index 2b6305ecfd5f..f3a5a62b2062 100644 --- a/drivers/block/rnbd/rnbd-clt-sysfs.c +++ b/drivers/block/rnbd/rnbd-clt-sysfs.c @@ -490,6 +490,7 @@ static int rnbd_clt_add_dev_kobj(struct rnbd_clt_dev *dev) ret); kobject_put(&dev->kobj); } + kobject_uevent(gd_kobj, KOBJ_ONLINE); return ret; } diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index ea98124e8ce9..01f67e08afc3 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -110,6 +110,7 @@ static int rnbd_clt_change_capacity(struct rnbd_clt_dev *dev, static int process_msg_open_rsp(struct rnbd_clt_dev *dev, struct rnbd_msg_open_rsp *rsp) { + struct kobject *gd_kobj; int err = 0; mutex_lock(&dev->lock); @@ -128,6 +129,8 @@ static int process_msg_open_rsp(struct rnbd_clt_dev *dev, */ if (dev->nsectors != nsectors) rnbd_clt_change_capacity(dev, nsectors); + gd_kobj = &disk_to_dev(dev->gd)->kobj; + kobject_uevent(gd_kobj, KOBJ_ONLINE); rnbd_clt_info(dev, "Device online, device remapped successfully\n"); } err = rnbd_clt_set_dev_attr(dev, rsp); @@ -649,14 +652,18 @@ static int send_msg_sess_info(struct rnbd_clt_session *sess, enum wait_type wait static void set_dev_states_to_disconnected(struct rnbd_clt_session *sess) { struct rnbd_clt_dev *dev; + struct kobject *gd_kobj; mutex_lock(&sess->lock); list_for_each_entry(dev, &sess->devs_list, list) { rnbd_clt_err(dev, "Device disconnected.\n"); mutex_lock(&dev->lock); - if (dev->dev_state == DEV_STATE_MAPPED) + if (dev->dev_state == DEV_STATE_MAPPED) { dev->dev_state = DEV_STATE_MAPPED_DISCONNECTED; + gd_kobj = &disk_to_dev(dev->gd)->kobj; + kobject_uevent(gd_kobj, KOBJ_OFFLINE); + } mutex_unlock(&dev->lock); } mutex_unlock(&sess->lock); From patchwork Mon Apr 19 07:37:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12210991 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A37F5C001E9 for ; Mon, 19 Apr 2021 07:38:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 82848610CC for ; Mon, 19 Apr 2021 07:38:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237972AbhDSHie (ORCPT ); Mon, 19 Apr 2021 03:38:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237989AbhDSHie (ORCPT ); Mon, 19 Apr 2021 03:38:34 -0400 Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA63FC06174A for ; Mon, 19 Apr 2021 00:38:04 -0700 (PDT) Received: by mail-ed1-x531.google.com with SMTP id o20so13142979edc.7 for ; Mon, 19 Apr 2021 00:38:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wGulsiDP85qTWmeqfCGWtmZxyNJhHyHuAwjDSVPm7EA=; b=QUjLCTggyKEx9gHrjKlArxE0WcBi02UZRjWleNgnGUBLnnc2ALFFCv0Bxdl2XvLZ2s C75UlfapVRWYD6pK5z0fSuwCb95pdxfSAXf7sHsT2w1AMqoIOlvE1Z+u6HS4FI7tKiXk FirAGzuUBGJGoIetsWB+rWySIhSgjs0cU+/eZ1ZdRP6H11aqUQta+5qjcBoKaOPsEHAF be30XCg0Y9CtIwlJUORasPbmF5n3fBs5pG40F/dXz5L3KOZImC3KX6953sziQDP0a7SA bTy4o3WjtN2cxGffLT0k6ZCW9BUq0VRAUcnRT21be+trGGpIwAc/hxdj5PySm6V1BoXM 6dZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wGulsiDP85qTWmeqfCGWtmZxyNJhHyHuAwjDSVPm7EA=; b=nS4amrVlVwMdSkwz1q7Mcrb3rmHtGfWfYru4T++/IzCI78AqImoTjiLKBZ1ux+r9XD OmpL5x/3Pvwuc7rWW6GgDG0VE46B7WJTnTGpMyUEiOX4ljWq1M6RfOCa4X6cq/eLL6p0 SXw/A11FIMJRXbWrBKvVDIGhmAsw2qHu0E3iATNBZ5JMB4OADPsWawVOq1BvozzwG4s+ SOPUVkZjVadiI0lvWrK8vTdkXumT28H+3mtmHN9ZssuVpbypswCjwaWDvqdWA3IkNRBu uHX4tNI2tBBa9UBW3EYDFRPBPNiGW1kyHyknvehmarhfTn5xB2XShq++Q3KHIqttnYCT wbqw== X-Gm-Message-State: AOAM531c0RALM7TYWdNPWPRPnxzRbY9pc3NtYmzqjLvAJcNFv/f7lfDJ FvQVwj5DodZBqeLcbHzubMqT0CCsoYzkEP4M X-Google-Smtp-Source: ABdhPJwuQngROLXM5/OEY03WOv/eEFgsUaJ+kI7k6hgpsTFV23qbqCZTQw3IJZ72D8qZZ+iHwu4n1g== X-Received: by 2002:aa7:ca0f:: with SMTP id y15mr22465588eds.384.1618817883262; Mon, 19 Apr 2021 00:38:03 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.38.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:38:02 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Jack Wang , Leon Romanovsky , linux-rdma@vger.kernel.org, Gioh Kim , Jason Gunthorpe Subject: [PATCHv5 for-next 17/19] block/rnbd-clt: Remove max_segment_size Date: Mon, 19 Apr 2021 09:37:20 +0200 Message-Id: <20210419073722.15351-18-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Jack Wang We always map with SZ_4K, so do not need max_segment_size. Cc: Leon Romanovsky Cc: linux-rdma@vger.kernel.org Signed-off-by: Jack Wang Reviewed-by: Md Haris Iqbal Signed-off-by: Gioh Kim Acked-by: Jason Gunthorpe Reviewed-by: Leon Romanovsky --- drivers/block/rnbd/rnbd-clt.c | 1 - drivers/infiniband/ulp/rtrs/rtrs-clt.c | 15 +++++---------- drivers/infiniband/ulp/rtrs/rtrs-clt.h | 1 - drivers/infiniband/ulp/rtrs/rtrs.h | 1 - 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index 01f67e08afc3..95381e6663e0 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -1289,7 +1289,6 @@ find_and_get_or_create_sess(const char *sessname, paths, path_cnt, port_nr, 0, /* Do not use pdu of rtrs */ RECONNECT_DELAY, BMAX_SEGMENTS, - BLK_MAX_SEGMENT_SIZE, MAX_RECONNECTS, nr_poll_queues); if (IS_ERR(sess->rtrs)) { err = PTR_ERR(sess->rtrs); diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c index eb0a5e2058ae..63623d872602 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c @@ -1400,7 +1400,7 @@ static void rtrs_clt_close_work(struct work_struct *work); static struct rtrs_clt_sess *alloc_sess(struct rtrs_clt *clt, const struct rtrs_addr *path, size_t con_num, u16 max_segments, - size_t max_segment_size, u32 nr_poll_queues) + u32 nr_poll_queues) { struct rtrs_clt_sess *sess; int err = -ENOMEM; @@ -1442,7 +1442,7 @@ static struct rtrs_clt_sess *alloc_sess(struct rtrs_clt *clt, rdma_addr_size((struct sockaddr *)path->src)); strlcpy(sess->s.sessname, clt->sessname, sizeof(sess->s.sessname)); sess->clt = clt; - sess->max_pages_per_mr = max_segments * max_segment_size >> 12; + sess->max_pages_per_mr = max_segments; init_waitqueue_head(&sess->state_wq); sess->state = RTRS_CLT_CONNECTING; atomic_set(&sess->connected_cnt, 0); @@ -2538,7 +2538,6 @@ static struct rtrs_clt *alloc_clt(const char *sessname, size_t paths_num, void (*link_ev)(void *priv, enum rtrs_clt_link_ev ev), unsigned int max_segments, - size_t max_segment_size, unsigned int reconnect_delay_sec, unsigned int max_reconnect_attempts) { @@ -2568,7 +2567,6 @@ static struct rtrs_clt *alloc_clt(const char *sessname, size_t paths_num, clt->port = port; clt->pdu_sz = pdu_sz; clt->max_segments = max_segments; - clt->max_segment_size = max_segment_size; clt->reconnect_delay_sec = reconnect_delay_sec; clt->max_reconnect_attempts = max_reconnect_attempts; clt->priv = priv; @@ -2638,7 +2636,6 @@ static void free_clt(struct rtrs_clt *clt) * @pdu_sz: Size of extra payload which can be accessed after permit allocation. * @reconnect_delay_sec: time between reconnect tries * @max_segments: Max. number of segments per IO request - * @max_segment_size: Max. size of one segment * @max_reconnect_attempts: Number of times to reconnect on error before giving * up, 0 for * disabled, -1 for forever * @nr_poll_queues: number of polling mode connection using IB_POLL_DIRECT flag @@ -2654,7 +2651,6 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops, size_t paths_num, u16 port, size_t pdu_sz, u8 reconnect_delay_sec, u16 max_segments, - size_t max_segment_size, s16 max_reconnect_attempts, u32 nr_poll_queues) { struct rtrs_clt_sess *sess, *tmp; @@ -2663,7 +2659,7 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops, clt = alloc_clt(sessname, paths_num, port, pdu_sz, ops->priv, ops->link_ev, - max_segments, max_segment_size, reconnect_delay_sec, + max_segments, reconnect_delay_sec, max_reconnect_attempts); if (IS_ERR(clt)) { err = PTR_ERR(clt); @@ -2673,7 +2669,7 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops, struct rtrs_clt_sess *sess; sess = alloc_sess(clt, &paths[i], nr_cpu_ids, - max_segments, max_segment_size, nr_poll_queues); + max_segments, nr_poll_queues); if (IS_ERR(sess)) { err = PTR_ERR(sess); goto close_all_sess; @@ -2951,8 +2947,7 @@ int rtrs_clt_create_path_from_sysfs(struct rtrs_clt *clt, struct rtrs_clt_sess *sess; int err; - sess = alloc_sess(clt, addr, nr_cpu_ids, clt->max_segments, - clt->max_segment_size, 0); + sess = alloc_sess(clt, addr, nr_cpu_ids, clt->max_segments, 0); if (IS_ERR(sess)) return PTR_ERR(sess); diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.h b/drivers/infiniband/ulp/rtrs/rtrs-clt.h index 692bc83e1f09..98ba5d0a48b8 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.h +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.h @@ -166,7 +166,6 @@ struct rtrs_clt { unsigned int max_reconnect_attempts; unsigned int reconnect_delay_sec; unsigned int max_segments; - size_t max_segment_size; void *permits; unsigned long *permits_map; size_t queue_depth; diff --git a/drivers/infiniband/ulp/rtrs/rtrs.h b/drivers/infiniband/ulp/rtrs/rtrs.h index b0f56ffeff88..bebaa94c4728 100644 --- a/drivers/infiniband/ulp/rtrs/rtrs.h +++ b/drivers/infiniband/ulp/rtrs/rtrs.h @@ -58,7 +58,6 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops, size_t path_cnt, u16 port, size_t pdu_sz, u8 reconnect_delay_sec, u16 max_segments, - size_t max_segment_size, s16 max_reconnect_attempts, u32 nr_poll_queues); void rtrs_clt_close(struct rtrs_clt *sess); From patchwork Mon Apr 19 07:37:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12211007 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4167FC43611 for ; Mon, 19 Apr 2021 07:38:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 19899610CC for ; Mon, 19 Apr 2021 07:38:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237956AbhDSHif (ORCPT ); Mon, 19 Apr 2021 03:38:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39656 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237955AbhDSHie (ORCPT ); Mon, 19 Apr 2021 03:38:34 -0400 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A830C06174A for ; Mon, 19 Apr 2021 00:38:05 -0700 (PDT) Received: by mail-ed1-x532.google.com with SMTP id s15so39446212edd.4 for ; Mon, 19 Apr 2021 00:38:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tjT+RMguLzB/ydHWKHwjOq0GIA6D6i7AJvW+As1h5Do=; b=Sh/Fg0ll6X03ziKmHodXyrxXJHafQsw+MUvwQ+5AcmFtbtWTsEOIp2bxFN8O4TnR46 jnKbPHiD1PEczxyWDgbP7zA705rQufnPkGQNsDuNcVS+Hvqw6coC9nz5SkulBS2P9cpK bYmApqKucC/r05q2JmT4L8pKmXMr9jQYgM7Vy2ne+UlzliAQlpEPfwHEMtt+40j0kBDA Dn38di5CTNPg8cxiDd+FoPTwH9oaT9xujuC+bOFhZToZNXXAHk6ok3+C/DYc/o9J4rp7 l2yplYQ7HPsQdJ+p64PnWp2e576Oyc9Pz0146YKig9TTo1JP7BwZQx2mGmCaYGPVYTEC 4qfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tjT+RMguLzB/ydHWKHwjOq0GIA6D6i7AJvW+As1h5Do=; b=T4PCVvFBFq6AtjMrSrNGpoesu0a66DMpMUjeORJjTBNQ9FsCOYNFmD2YUX5DLctNEC xK3Bq/Cwf2RCtQNRtYaSGfB9wucvlwFi1jAJKkLqMgMmidaJPqU6eIXOyUJXE3HHpciH w3mIncxSJ9KAJMhsv6GqbnI4c3CZAGDH/TYCRY8B9TaQMnSu67la202URx9pwgIWEC7z dKMEMI3+e8hsOJxlc2vAqGohq4TQelPrcGPXWX52+7aqSEOLf/wvASf/TUyE+wt9xxUm 88yGvMzDF2DDIBhzCdm0jKjyF59iQomMJ8KvBiMAYpcdUkGktmbuIFejTZtN43MPrWmz wInw== X-Gm-Message-State: AOAM530Uy42/8KL4zYRbKyIXetcvad0/ml2mzHrQN4XndsyZ/Yrh+gQi XsQVafTvUfZmaqcSzzwQsZQn9SfNH/N5xD/Y X-Google-Smtp-Source: ABdhPJxdIgjYmLvxL2QRQl40L2C6ldx9rtxO4RAhrwq6afBTvsfPUCwPItknuQXq2LOsz0q/rFkhMA== X-Received: by 2002:a50:f28e:: with SMTP id f14mr207557edm.371.1618817884142; Mon, 19 Apr 2021 00:38:04 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.38.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:38:03 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Dima Stepanov , Dima Stepanov , Arnd Bergmann , Gioh Kim , Chaitanya Kulkarni Subject: [PATCHv5 for-next 18/19] block/rnbd-clt-sysfs: Remove copy buffer overlap in rnbd_clt_get_path_name Date: Mon, 19 Apr 2021 09:37:21 +0200 Message-Id: <20210419073722.15351-19-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Dima Stepanov cppcheck report the following error: rnbd/rnbd-clt-sysfs.c:522:36: error: The variable 'buf' is used both as a parameter and as destination in snprintf(). The origin and destination buffers overlap. Quote from glibc (C-library) documentation (http://www.gnu.org/software/libc/manual/html_mono/libc.html#Formatted-Output-Functions): "If copying takes place between objects that overlap as a result of a call to sprintf() or snprintf(), the results are undefined." [sprintfOverlappingData] Fix it by initializing the buf variable in the first snprintf call. Fixes: 91f4acb2801c ("block/rnbd-clt: support mapping two devices") Signed-off-by: Dima Stepanov Cc: Arnd Bergmann Signed-off-by: Jack Wang Signed-off-by: Gioh Kim Reviewed-by: Chaitanya Kulkarni --- drivers/block/rnbd/rnbd-clt-sysfs.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c index f3a5a62b2062..042566b47bd9 100644 --- a/drivers/block/rnbd/rnbd-clt-sysfs.c +++ b/drivers/block/rnbd/rnbd-clt-sysfs.c @@ -514,11 +514,7 @@ static int rnbd_clt_get_path_name(struct rnbd_clt_dev *dev, char *buf, while ((s = strchr(pathname, '/'))) s[0] = '!'; - ret = snprintf(buf, len, "%s", pathname); - if (ret >= len) - return -ENAMETOOLONG; - - ret = snprintf(buf, len, "%s@%s", buf, dev->sess->sessname); + ret = snprintf(buf, len, "%s@%s", pathname, dev->sess->sessname); if (ret >= len) return -ENAMETOOLONG; From patchwork Mon Apr 19 07:37:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gioh Kim X-Patchwork-Id: 12211005 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F5E4C04FCE for ; Mon, 19 Apr 2021 07:38:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E964561166 for ; Mon, 19 Apr 2021 07:38:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237953AbhDSHih (ORCPT ); Mon, 19 Apr 2021 03:38:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237981AbhDSHif (ORCPT ); Mon, 19 Apr 2021 03:38:35 -0400 Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51D47C061760 for ; Mon, 19 Apr 2021 00:38:06 -0700 (PDT) Received: by mail-ed1-x52b.google.com with SMTP id j12so14396689edy.3 for ; Mon, 19 Apr 2021 00:38:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OBxjluacdx44Ad2DUdXDx0FetvYAHBA3papJxkIAM7s=; b=ElXPKaW5VxqI7pBiBJTX9KZjia9NEbmTGGLXYonGevuIOND6ijttUWkabkwosR65wK R9NNkrGkE5Ps9Sp8RJuDB20tdplca/krXFm4VjXalsDLdij3JZPN47qzMu/ilax4FV3k h7lvlP59K7DAG+N4ysHfiyMvB4UURrYWdETCkhdiewglwoLfrurB530I2Oa/uzoDBqll IExn4YiN8DAgftj34EI9F+85IdSG4wGsArAQmiiiW4w9PJXHSxbBDqvPV373CA5ZNVMI 7p/ya3OA6JSC1f6JtB9ZDG15BNyKy20mIr92kdY4shMwzSFv8v7BLQcAc+bo94onztvH m0qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OBxjluacdx44Ad2DUdXDx0FetvYAHBA3papJxkIAM7s=; b=SMd98fX6dXZVfgL5SaGPKYjDxKV3KriHuG/KnXT6ejuEibcfUYfoNlYPUK5Mv7QKu4 HbuPCVLxR0NMdJf9kpF9SRGoaMuoW42pLe74XtjYzPcIrIduixv4FzG+PMRFz1hL8DW1 H4hBKR2eAE0430HE8h4cADEo3SzIaNAiw96YrpFKXuRCAfPcTEVORq2LHmiayFzKTry/ MMoIetChrVk//UnzAjoaU9lkgTZl6E/Dil/qDXo7bS3qyfMfxP+yvHYewh8MPIlfPo9P 75UjJNY0COEAl44uOE+DF54xMGOOhd7U7evfe/sPnXnsp1sUkGl0tZdVZwF0L52abHIM JC+g== X-Gm-Message-State: AOAM533IgTyV3CWDYgUNuYu53yguhXuQT2H0N0QFIrZRjXGNwL7y+q06 NCHhdqaYtNUhYDcTgRvWEt+H6xSdwTH4c+XJ X-Google-Smtp-Source: ABdhPJw1DrHlPDDt5k1QBPcSIQfEwEd5Hnl9ujAbb4zsWty9CmI3vFx0vctgcfuIk1YKRqGY31680A== X-Received: by 2002:aa7:c90a:: with SMTP id b10mr16186433edt.276.1618817884985; Mon, 19 Apr 2021 00:38:04 -0700 (PDT) Received: from localhost.localdomain (ip5f5aeee5.dynamic.kabel-deutschland.de. [95.90.238.229]) by smtp.googlemail.com with ESMTPSA id g22sm8701833ejz.46.2021.04.19.00.38.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 00:38:04 -0700 (PDT) From: Gioh Kim To: linux-block@vger.kernel.org, linux-doc@vger.kernel.org Cc: axboe@kernel.dk, akinobu.mita@gmail.com, corbet@lwn.net, hch@infradead.org, sagi@grimberg.me, bvanassche@acm.org, haris.iqbal@ionos.com, jinpu.wang@ionos.com, Dima Stepanov , Gioh Kim , Chaitanya Kulkarni Subject: [PATCHv5 for-next 19/19] block/rnbd: Use strscpy instead of strlcpy Date: Mon, 19 Apr 2021 09:37:22 +0200 Message-Id: <20210419073722.15351-20-gi-oh.kim@ionos.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210419073722.15351-1-gi-oh.kim@ionos.com> References: <20210419073722.15351-1-gi-oh.kim@ionos.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org From: Dima Stepanov During checkpatch analyzing the following warning message was found: WARNING:STRLCPY: Prefer strscpy over strlcpy - see: https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw@mail.gmail.com/ Fix it by using strscpy calls instead of strlcpy. Signed-off-by: Dima Stepanov Signed-off-by: Jack Wang Signed-off-by: Gioh Kim Reviewed-by: Chaitanya Kulkarni --- drivers/block/rnbd/rnbd-clt-sysfs.c | 6 +++--- drivers/block/rnbd/rnbd-clt.c | 4 ++-- drivers/block/rnbd/rnbd-srv.c | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c index 042566b47bd9..324afdd63a96 100644 --- a/drivers/block/rnbd/rnbd-clt-sysfs.c +++ b/drivers/block/rnbd/rnbd-clt-sysfs.c @@ -99,7 +99,7 @@ static int rnbd_clt_parse_map_options(const char *buf, size_t max_path_cnt, kfree(p); goto out; } - strlcpy(opt->sessname, p, NAME_MAX); + strscpy(opt->sessname, p, NAME_MAX); kfree(p); break; @@ -142,7 +142,7 @@ static int rnbd_clt_parse_map_options(const char *buf, size_t max_path_cnt, kfree(p); goto out; } - strlcpy(opt->pathname, p, NAME_MAX); + strscpy(opt->pathname, p, NAME_MAX); kfree(p); break; @@ -510,7 +510,7 @@ static int rnbd_clt_get_path_name(struct rnbd_clt_dev *dev, char *buf, int ret; char pathname[NAME_MAX], *s; - strlcpy(pathname, dev->pathname, sizeof(pathname)); + strscpy(pathname, dev->pathname, sizeof(pathname)); while ((s = strchr(pathname, '/'))) s[0] = '!'; diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c index 95381e6663e0..c01786afe1b1 100644 --- a/drivers/block/rnbd/rnbd-clt.c +++ b/drivers/block/rnbd/rnbd-clt.c @@ -578,7 +578,7 @@ static int send_msg_open(struct rnbd_clt_dev *dev, enum wait_type wait) msg.hdr.type = cpu_to_le16(RNBD_MSG_OPEN); msg.access_mode = dev->access_mode; - strlcpy(msg.dev_name, dev->pathname, sizeof(msg.dev_name)); + strscpy(msg.dev_name, dev->pathname, sizeof(msg.dev_name)); WARN_ON(!rnbd_clt_get_dev(dev)); err = send_usr_msg(sess->rtrs, READ, iu, @@ -800,7 +800,7 @@ static struct rnbd_clt_session *alloc_sess(const char *sessname) sess = kzalloc_node(sizeof(*sess), GFP_KERNEL, NUMA_NO_NODE); if (!sess) return ERR_PTR(-ENOMEM); - strlcpy(sess->sessname, sessname, sizeof(sess->sessname)); + strscpy(sess->sessname, sessname, sizeof(sess->sessname)); atomic_set(&sess->busy, 0); mutex_init(&sess->lock); INIT_LIST_HEAD(&sess->devs_list); diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c index abacd9ef10d6..899dd9d7c10b 100644 --- a/drivers/block/rnbd/rnbd-srv.c +++ b/drivers/block/rnbd/rnbd-srv.c @@ -298,7 +298,7 @@ static int create_sess(struct rtrs_srv *rtrs) mutex_unlock(&sess_lock); srv_sess->rtrs = rtrs; - strlcpy(srv_sess->sessname, sessname, sizeof(srv_sess->sessname)); + strscpy(srv_sess->sessname, sessname, sizeof(srv_sess->sessname)); rtrs_srv_set_sess_priv(rtrs, srv_sess); @@ -437,7 +437,7 @@ static struct rnbd_srv_dev *rnbd_srv_init_srv_dev(const char *id) if (!dev) return ERR_PTR(-ENOMEM); - strlcpy(dev->id, id, sizeof(dev->id)); + strscpy(dev->id, id, sizeof(dev->id)); kref_init(&dev->kref); INIT_LIST_HEAD(&dev->sess_dev_list); mutex_init(&dev->lock); @@ -589,7 +589,7 @@ rnbd_srv_create_set_sess_dev(struct rnbd_srv_session *srv_sess, kref_init(&sdev->kref); - strlcpy(sdev->pathname, open_msg->dev_name, sizeof(sdev->pathname)); + strscpy(sdev->pathname, open_msg->dev_name, sizeof(sdev->pathname)); sdev->rnbd_dev = rnbd_dev; sdev->sess = srv_sess;