Received: by 2002:a05:7412:ba23:b0:fa:4c10:6cad with SMTP id jp35csp240108rdb; Thu, 18 Jan 2024 02:01:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IHg72nssPe7lUqW/0QUAN1tgB8rmR06dIQsfD4Nm4PBy4LOvCGCJkVErFyAq/PYxMRUNFGW X-Received: by 2002:a17:907:31c3:b0:a2c:2323:34c0 with SMTP id xf3-20020a17090731c300b00a2c232334c0mr420704ejb.32.1705572068385; Thu, 18 Jan 2024 02:01:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1705572068; cv=pass; d=google.com; s=arc-20160816; b=BJkqKcFm4H/KWKfpQ7gzBc1zw+PAZVJlRkmV2t7utKPjwqATPMBLPoDXcNbpJGUhTA K8/nH/ny+Sn+0dG3hAjoreQRSPojOPTfyFENsykc/zgKOYbO84WTlaPDnpc9Uy42uHig ZDWruqaIOTveQq6ifuTM7oOrP6y0uL2LEqTGvKFSBw6NVRKRJ+eNwm0TT8XjaszHaQkh 7pixZ2BaLVxs4gz8JU25ufSH2VwsrYiyVkUkXHIhnZFLESa6pnNWCZqRURYw74b6nixM VAig5FbAUHrSFbjUV2IKcPnx7R2vLCW1hxMql3ZHAUW1Ky55P767vtZTGlRohIQ0aW6A bZ8Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :subject:cc:to:from:date:dkim-signature; bh=0lnfW/NLNL6qDaDSXZslz9D/mJpVM88btFW4k0I189Q=; fh=rksgBOxpgEkIqD+Q3RJ8SOccaj4LfYU57H4XnJ9rwug=; b=mmsaNoexpoAwoTpAZBcUXehCITYUFUsMt5qXg35TqwvqclyegwW25tKPPptPobMtaB mYgxfE7MOxk2fs2XWTLGyiJsKfuzQgL19IwpuSsGZmo5NkI6vk2T0brSXO+uALBqqvqN YIbw9yImsFzD1LWZccE9LyjuDe2HPEtAcwcYuQCTAIj/Opv91QVF4YkYRu0oCU8v12db IUUgPZq1TbFEPBlOtRjWCeYMaQJe/0/kMQMnD6WnUen3N6DCCHX6b9t4UA8VVv8Obuw5 9SwT38viPpW6FTQyT8BHh+XNe6X5kBVQ7pkzGw/LrVwPeI+IIZoAitdywIUyMvXR65ct 8qhw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=iKA7nlHW; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-kernel+bounces-29765-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-29765-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id op20-20020a170906bcf400b00a2b9d6ecbbcsi6566212ejb.960.2024.01.18.02.01.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 02:01:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-29765-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=iKA7nlHW; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-kernel+bounces-29765-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-29765-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id E9DFA1F2367C for ; Thu, 18 Jan 2024 07:35:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 05BC3B671; Thu, 18 Jan 2024 07:35:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="iKA7nlHW" Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9488947A; Thu, 18 Jan 2024 07:35:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.11 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705563338; cv=none; b=HaIu9sffC5rxgbUwAVigm7zbnpnEW6rDQDyhwWTlDr4mFNOQYAQRXO0Zst8YhvNXTTWLqTBd9pb2iQrLpHWS/3B8PQAlvs02jIbllPNksVPRuDLSR27pGI+ShQ1h0Wtb43885KVyP7arP9uQePNLCdv6uJeim3zSAEcxShjqKn0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705563338; c=relaxed/simple; bh=OX3x/t7S5eYlemp0ECxrgPOLlFI4fZcRLUMx0aAs7nI=; h=DKIM-Signature:X-IronPort-AV:X-IronPort-AV:Received:X-ExtLoop1: X-IronPort-AV:Received:Date:From:To:Cc:Subject:Message-ID: In-Reply-To:References:X-Mailer:MIME-Version:Content-Type: Content-Transfer-Encoding; b=o0MjZU7Tlj6lmtyow6RWWFOAcHPHfzU9QgfO8kYW+blL7/72SocnFWCnnvIVVp4mk4UP8G5x3mtuhYz2bvvP93wwrOeyiO5ftpaKPI4/Y8UbNGzHJctYlXNvdSnigjiadxVEcNOhnEfeLqBsH0l9APKBvk1FjdsD004e2g0Yqf8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=iKA7nlHW; arc=none smtp.client-ip=198.175.65.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1705563336; x=1737099336; h=date:from:to:cc:subject:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OX3x/t7S5eYlemp0ECxrgPOLlFI4fZcRLUMx0aAs7nI=; b=iKA7nlHWLI9Q22jR603zMvvMhyViy6ILJuOPm7YQZQd7S2lheIt1K606 AunPK/fnksvZa7kWdBZSSKKWW1eitXw5kJMekUSj23oKLhjGYmmLkz5D/ wPuluL3YiKjUADTvk/iikXU+FFp/GCIfRGezE3/GQXphj3K70eTgkn0Is 30+qhMj05laAbDe17irKF3YNK5apP9br6j2Z0LY5VEgfhZcmGgKdgj1Pi UxBxjMKfsegK18JQgxUAqqVnK4QaeP+ode3r6f/tW2x8IQVPPxL3AcwEf 0yokM6o/d6zfxAQ5qvRvtOFMDU2Y5ZvyE7MK+Jz6XS0rLNkfpvRGdqtcS w==; X-IronPort-AV: E=McAfee;i="6600,9927,10956"; a="7067652" X-IronPort-AV: E=Sophos;i="6.05,201,1701158400"; d="scan'208";a="7067652" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2024 23:35:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,201,1701158400"; d="scan'208";a="26391581" Received: from mtkaczyk-mobl.ger.corp.intel.com (HELO localhost) ([10.245.82.157]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2024 23:35:33 -0800 Date: Thu, 18 Jan 2024 08:35:25 +0100 From: Mariusz Tkaczyk To: linan666@huaweicloud.com Cc: song@kernel.org, shli@fb.com, neilb@suse.com, zlliu@suse.com, linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, yukuai3@huawei.com, yi.zhang@huawei.com, houtao1@huawei.com, yangerkun@huawei.com Subject: Re: [PATCH v2 1/3] md: Don't clear MD_CLOSING when the raid is about to stop Message-ID: <20240118083525.00002b15@linux.intel.com> In-Reply-To: <20240117093707.2767209-2-linan666@huaweicloud.com> References: <20240117093707.2767209-1-linan666@huaweicloud.com> <20240117093707.2767209-2-linan666@huaweicloud.com> X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Wed, 17 Jan 2024 17:37:05 +0800 linan666@huaweicloud.com wrote: > From: Li Nan > > The raid should not be opened anymore when it is about to be stopped. > However, other processes can open it again if the flag MD_CLOSING is > cleared before exiting. From now on, this flag will not be cleared when > the raid will be stopped. > > Fixes: 065e519e71b2 ("md: MD_CLOSING needs to be cleared after called > md_set_readonly or do_md_stop") Signed-off-by: Li Nan > --- > drivers/md/md.c | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/drivers/md/md.c b/drivers/md/md.c > index 9bdd57324c37..4bf821b89415 100644 > --- a/drivers/md/md.c > +++ b/drivers/md/md.c > @@ -6254,7 +6254,15 @@ static void md_clean(struct mddev *mddev) > mddev->persistent = 0; > mddev->level = LEVEL_NONE; > mddev->clevel[0] = 0; > - mddev->flags = 0; > + /* > + * Don't clear MD_CLOSING, or mddev can be opened again. > + * 'hold_active != 0' means mddev is still in the creation > + * process and will be used later. > + */ > + if (mddev->hold_active) > + mddev->flags = 0; > + else > + mddev->flags &= BIT_ULL_MASK(MD_CLOSING); > mddev->sb_flags = 0; > mddev->ro = MD_RDWR; > mddev->metadata_type[0] = 0; > @@ -7728,6 +7736,12 @@ static int md_ioctl(struct block_device *bdev, > blk_mode_t mode, > case STOP_ARRAY: > err = do_md_stop(mddev, 0, bdev); > + if (!err) > + /* > + * mddev has been stopped, keep flag the > + * MD_CLOSING to prevent reuse. > + */ > + did_set_md_closing = false; Hello Nan, The meaning of the "did_set_md_closing" is to notify that MD_CLOSING was set in this function, to know how to behave on error. You gave it another meaning "Do not clear MD_CLOSING because we want it to stay" Please consider how to solve this confusion. I see the comment you added but I think we can have this solved better, maybe just name it as "clear_md_closing"? Anyway it looks acceptable to me: Acked-by: Mariusz Tkaczyk Thanks, Mariusz