From patchwork Thu Aug 3 13:27:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yu Kuai X-Patchwork-Id: 130656 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1176495vqx; Thu, 3 Aug 2023 07:12:13 -0700 (PDT) X-Google-Smtp-Source: APBJJlE1XsLZQC755FCrNEDVjVSFsq319A9hrgZ859MDpoinipIOUHn8i4iKJPFQOigI+ghBZlpY X-Received: by 2002:a17:907:2718:b0:99b:d2a9:9a01 with SMTP id w24-20020a170907271800b0099bd2a99a01mr8085406ejk.0.1691071933150; Thu, 03 Aug 2023 07:12:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691071933; cv=none; d=google.com; s=arc-20160816; b=n1N53OkR2vq9aorSMuNIDY7qclNIOy7iDnD/PCjEhX7LrKdvkfjrALGdnrX0PIr6iF Ifc7zz4kddcqNliInC/Mdefen4kOkaM+wspSZzwBDwKr513F0Ks0V4YC+k7B7B0IRmbr CEhkRkozOFvCZgCpeMc8UWZbg53aaXCPxO4ADgbmlNuFhKxObooZZkwPHrR9DBd0h7ON 71u3nFsw67fSaZ8oRNk9psF6QL+AG9iE16gB4Ba/HzG0ApA4zb3MmpvFn16ox9YFNE/Y GkeqQP+XR7ejEh9Vb2vAUOi6H0fb9csSH5+nxXYzhjI3xVLsuCdsZCmbwtbK2WmHymIF 2lEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=uhvqMGsfnvQ3tt2yYYwVjVJvxDst0tGfs1CY3GLmEDE=; fh=Ktvf84aTmiKPjIiQsnocICsaz7FvZSNYviQ4CE4oKUo=; b=GhODTfwaJUww2J2cgOlXv0b4RYCsFlE18UnVksksB6S6Kr4virrqL+2HswNCKvt4sV c0KW7hJ7kWyDiKw5VOeIHhIvM4L9h67tnRe3tDmk3UZehYXnZ811eLuwgkvLwz4XSho/ 9SfkpuMHxwFgRwxV0hCjxbw/q8HoKZM+RidP0n/xIBqIMENiANr6fuyUKr1Z5xdK6C1p 6+xT3wf1maOiAjkyITuK8lHJ5kmqSPhKLASx8clOpkPGKJvIt7Wpu8ZwxbjM/h0+AkbV 5DFxGlkLZJDVAp5gRuOTiGVCftp6IdkIDWq68htSPGZ0WMDw5IWENQIs+RxlT9aQRjm5 WqdA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f2-20020a170906390200b0099bd2075268si2029514eje.920.2023.08.03.07.11.43; Thu, 03 Aug 2023 07:12:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235981AbjHCNcY (ORCPT + 99 others); Thu, 3 Aug 2023 09:32:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232240AbjHCNcB (ORCPT ); Thu, 3 Aug 2023 09:32:01 -0400 Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 48DB01BFA; Thu, 3 Aug 2023 06:30:55 -0700 (PDT) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4RGqVJ369rz4f3yDh; Thu, 3 Aug 2023 21:30:48 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.104.67]) by APP4 (Coremail) with SMTP id gCh0CgCnD7MGrMtkNVvlPQ--.7517S7; Thu, 03 Aug 2023 21:30:48 +0800 (CST) From: Yu Kuai To: song@kernel.org, xni@redhat.com Cc: linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, yukuai3@huawei.com, yukuai1@huaweicloud.com, yi.zhang@huawei.com, yangerkun@huawei.com Subject: [PATCH -next 3/7] md: don't rely on 'mddev->pers' to be set in mddev_suspend() Date: Thu, 3 Aug 2023 21:27:47 +0800 Message-Id: <20230803132751.2741652-4-yukuai1@huaweicloud.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230803132751.2741652-1-yukuai1@huaweicloud.com> References: <20230803132751.2741652-1-yukuai1@huaweicloud.com> MIME-Version: 1.0 X-CM-TRANSID: gCh0CgCnD7MGrMtkNVvlPQ--.7517S7 X-Coremail-Antispam: 1UD129KBjvdXoWrKr1xGryDWw4rXry8Zr48Crg_yoWfCFXEgF 4Du34DXr1FvF9Fgr1Yyw4Fvry5Kwn8W3ZrZFySkryavFyxAFW8JFZ5W3y5Xws2grZrG3sr KryUKr43Ars3GjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbTxFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG 6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI8067AKxVWUWwA2048vs2IY02 0Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv wVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM2 8EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AI xVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20x vE14v26r106r15McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xv r2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxAIw28IcxkI7VAKI48JMxC20s 026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_ JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14 v26r4j6ryUMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UMIIF0xvE42xK8VAvwI8I cIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JVWxJwCI42IY6I8E87Iv6xkF7I0E14v26r 4UJVWxJrUvcSsGvfC2KfnxnUUI43ZEXa7VU1VOJ5UUUUU== X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, MAY_BE_FORGED,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773217443502649035 X-GMAIL-MSGID: 1773217443502649035 From: Yu Kuai Now that active io is initialized when mddev is allocated, it's safe to call mddev_suspend() before 'mddev->pers' is set. This also prevent null-ptr-def in some cases that caller doesn't guarantee 'mddev->pers' to be set. Signed-off-by: Yu Kuai --- drivers/md/md.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/md/md.c b/drivers/md/md.c index 897e94a9e47d..f14f2f0a9484 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -448,7 +448,7 @@ void mddev_suspend(struct mddev *mddev) set_bit(MD_ALLOW_SB_UPDATE, &mddev->flags); percpu_ref_kill(&mddev->active_io); - if (mddev->pers->prepare_suspend) + if (mddev->pers && mddev->pers->prepare_suspend) mddev->pers->prepare_suspend(mddev); wait_event(mddev->sb_wait, percpu_ref_is_zero(&mddev->active_io));