Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp1551697rdh; Mon, 25 Sep 2023 17:05:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGuJIQK15/jg5IiM6fLIrSI+PDjDemEXml9NAwXdtKOO3VSVfRo/3rQQftMjvvNMaUV5pwE X-Received: by 2002:a05:6a20:394a:b0:160:6174:6b44 with SMTP id r10-20020a056a20394a00b0016061746b44mr3950478pzg.42.1695686757533; Mon, 25 Sep 2023 17:05:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695686757; cv=none; d=google.com; s=arc-20160816; b=Fe2j+m1m+ETAnC3fDEhYES/0OuT82gEzr18Hh3RWk8suZzVKbAB6F1Kz5S0VNLsmQz JwffsGGBrg5KuPu50Hp/P22sSIzEv3J7t6E9JTPsHUfggX/2LTuK0T/EW4hEMDQKPv8Z dIjsO2tPbH8d7XHmdtEVfbamdYmcL8aOcT1YNmjxv2qjIQzEolKH5Ko9854UN5aN4ZCS smoXrOsR/hI5aqI+iOZpwjikLwGeeBH0WnQFU6OQRFwijrGZhbfo8xdBJ+KQMViyIGQe P+J8feYfmnY3BoJJvwHO/NAKF9ciB5ONbOI76DJvj06qyrtv/59CRUfnrgM3N+FgsQjT xWBA== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=2Q2xe2PpYwGaEzbFom0qcl1nTnSdaQt3gv9imQvhg5I=; fh=O0D4KvU3ctsTEolupUMgjXYU/h6I1zPq24cmJASkfgc=; b=erBho1V15Ft1FXXJfDHOGWHrbZhVmwdBCKK1ioLmrN8GqFsNlvm7FtrwrkzxDJUQ82 MmbUbSuSpaQXd0dqx5v9C+g2/oGgn6eZSWZ7Ab4irt+7AfKvGp0A9eRi/bU6ngnlEoM0 TTgq5bDEXvS6cbIKnxHJ8WRQ6+scUJZV1LgPd+8FN7SBNIjA+1RDMha3GzA9L7DuXTlP 9AlWMpvQw51iJkzTGjUHQmJAd8kiUNqKfAFgJK6MAFFV6QTprG5EGNosg2QlzTLUqW7c 0OEykK3YpL4uulucCVwRLNTcrG7y2mGvHrpKPZAcmwZysk2FAwTXi2L5lzHiuwY4tP5v EUqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@yandex-team.ru header.s=default header.b=I8Nhee08; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yandex-team.ru Return-Path: Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id f6-20020a17090ab94600b002772b8993ebsi6263857pjw.159.2023.09.25.17.05.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Sep 2023 17:05:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@yandex-team.ru header.s=default header.b=I8Nhee08; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yandex-team.ru Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 47A6180DB36E; Mon, 25 Sep 2023 06:01:43 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231565AbjIYNBa (ORCPT + 99 others); Mon, 25 Sep 2023 09:01:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53820 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231539AbjIYNB1 (ORCPT ); Mon, 25 Sep 2023 09:01:27 -0400 X-Greylist: delayed 83 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Mon, 25 Sep 2023 06:01:17 PDT Received: from forwardcorp1a.mail.yandex.net (forwardcorp1a.mail.yandex.net [178.154.239.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 264CFC6; Mon, 25 Sep 2023 06:01:16 -0700 (PDT) Received: from mail-nwsmtp-smtp-corp-main-83.vla.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-83.vla.yp-c.yandex.net [IPv6:2a02:6b8:c18:d11:0:640:6943:0]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id AAE4B607EA; Mon, 25 Sep 2023 15:59:45 +0300 (MSK) Received: from den-plotnikov-n.yandex.net (unknown [2a02:6b8:0:419:f70:586b:6390:c6a4]) by mail-nwsmtp-smtp-corp-main-83.vla.yp-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id exNfIA0Op0U0-c2Sy2QAO; Mon, 25 Sep 2023 15:59:45 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1695646785; bh=2Q2xe2PpYwGaEzbFom0qcl1nTnSdaQt3gv9imQvhg5I=; h=Message-Id:Date:Cc:Subject:To:From; b=I8Nhee08CMvR7SkKDsjSwXR+73xCtH2NEzXcOTlkpwgSAzXFiCuc1pr4dJhYHjk2I Hy6yR1ihHDQOb4uAanvMysQv7nNJg5Dul5DDh0szDVTwdwXj2dEUU+PP6VXYxTG2sY rlLgmUC62Kcz2hkBFmbfyvElorvz7CUAO15FZMIM= Authentication-Results: mail-nwsmtp-smtp-corp-main-83.vla.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Denis Plotnikov To: linux-kernel@vger.kernel.org Cc: linux-raid@vger.kernel.org, song@kernel.org Subject: [PATCH] md-cluster: check for timeout while a new disk adding Date: Mon, 25 Sep 2023 15:59:40 +0300 Message-Id: <20230925125940.1542506-1-den-plotnikov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Mon, 25 Sep 2023 06:01:43 -0700 (PDT) A new disk adding may end up with timeout and a new disk won't be added. Add returning the error in that case. Found by Linux Verification Center (linuxtesting.org) with SVACE Signed-off-by: Denis Plotnikov --- drivers/md/md-cluster.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/md/md-cluster.c b/drivers/md/md-cluster.c index f0e64e76fd79..a5bb065835b7 100644 --- a/drivers/md/md-cluster.c +++ b/drivers/md/md-cluster.c @@ -501,7 +501,7 @@ static void process_suspend_info(struct mddev *mddev, mddev->pers->quiesce(mddev, 0); } -static void process_add_new_disk(struct mddev *mddev, struct cluster_msg *cmsg) +static int process_add_new_disk(struct mddev *mddev, struct cluster_msg *cmsg) { char disk_uuid[64]; struct md_cluster_info *cinfo = mddev->cluster_info; @@ -509,6 +509,7 @@ static void process_add_new_disk(struct mddev *mddev, struct cluster_msg *cmsg) char raid_slot[16]; char *envp[] = {event_name, disk_uuid, raid_slot, NULL}; int len; + int res = 0; len = snprintf(disk_uuid, 64, "DEVICE_UUID="); sprintf(disk_uuid + len, "%pU", cmsg->uuid); @@ -517,9 +518,14 @@ static void process_add_new_disk(struct mddev *mddev, struct cluster_msg *cmsg) init_completion(&cinfo->newdisk_completion); set_bit(MD_CLUSTER_WAITING_FOR_NEWDISK, &cinfo->state); kobject_uevent_env(&disk_to_dev(mddev->gendisk)->kobj, KOBJ_CHANGE, envp); - wait_for_completion_timeout(&cinfo->newdisk_completion, - NEW_DEV_TIMEOUT); + if (!wait_for_completion_timeout(&cinfo->newdisk_completion, + NEW_DEV_TIMEOUT)) { + pr_err("md-cluster(%s:%d): timeout on a new disk adding\n", + __func__, __LINE__); + res = -1; + } clear_bit(MD_CLUSTER_WAITING_FOR_NEWDISK, &cinfo->state); + return res; } @@ -591,7 +597,8 @@ static int process_recvd_msg(struct mddev *mddev, struct cluster_msg *msg) le64_to_cpu(msg->high)); break; case NEWDISK: - process_add_new_disk(mddev, msg); + if (process_add_new_disk(mddev, msg)) + ret = -1; break; case REMOVE: process_remove_disk(mddev, msg); -- 2.34.1