From nobody Fri Oct 3 06:34:20 2025 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) (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 0A87D29DB6A; Thu, 4 Sep 2025 07:44:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=45.249.212.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756971846; cv=none; b=BG5RuMte6Ov04fY7TPFChuZck7DDTxAvLZpwWK+NbMf23lN1VxPLRsC8RDvwrjJEOrwXj+7v/9G9Bj0gEs5vR1Y/zfKBknF9HxSGNAHvUB/iRojo/eZQZukvYfe0DmovCsboUxcIVKJVD/lnP8DIx9O1igLWDnyKwVV7zOfcnmE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756971846; c=relaxed/simple; bh=CsW6iKaT0dqbRQAoLV1BC4Wm0MVZ0vVh0FMg/XPVnjI=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=j24aWdqT2HfBN+t4rvizFl7x+Y+u2W+lQd594U++QlNYhs32c8n/SVTJU3V5Y4v0Mc7zHuGD663kGWYCR5WvtMuBGywvp1UdaHOfksU3oAv3H6KGvMJHLHKSUsj8lug/E8yzjuG+VSZJ8s4mtJ1T/H4RntwAq2Mm3Q0Nq2xvXNE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=huaweicloud.com; spf=pass smtp.mailfrom=huaweicloud.com; arc=none smtp.client-ip=45.249.212.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=huaweicloud.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=huaweicloud.com Received: from mail.maildlp.com (unknown [172.19.93.142]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4cHWgv5mW1zKHNKK; Thu, 4 Sep 2025 15:43:55 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.128]) by mail.maildlp.com (Postfix) with ESMTP id B47CD1A084B; Thu, 4 Sep 2025 15:43:55 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.104.67]) by APP4 (Coremail) with SMTP id gCh0CgDXIY45Q7loCzJgBQ--.13338S4; Thu, 04 Sep 2025 15:43:55 +0800 (CST) From: linan666@huaweicloud.com To: song@kernel.org, yukuai3@huawei.com Cc: linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, linan666@huaweicloud.com, pmenzel@molgen.mpg.de, yangerkun@huawei.com, yi.zhang@huawei.com Subject: [PATCH v3] md: prevent incorrect update of resync/recovery offset Date: Thu, 4 Sep 2025 15:34:52 +0800 Message-Id: <20250904073452.3408516-1-linan666@huaweicloud.com> X-Mailer: git-send-email 2.39.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: gCh0CgDXIY45Q7loCzJgBQ--.13338S4 X-Coremail-Antispam: 1UD129KBjvJXoW7Gr48Gw1rGr15Jry5Ww15Jwb_yoW8Jr17pF Z7CFyakr15Xr47ArWUZ34UZFyrZw1xtryUCryUuw1DZ3WxKwnrtFWqganrXFyqgws5AFWj q3s5Jan8ZaykAaDanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUU9l14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc CE3s1lnxkEFVAIw20F6cxK64vIFxWle2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xv F2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r 4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I 648v4I1lw4CEc2x0rVAKj4xxMxkF7I0En4kS14v26r126r1DMxAIw28IcxkI7VAKI48JMx C20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAF wI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20x vE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4v2 0xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxV WUJVW8JbIYCTnIWIevJa73UjIFyTuYvjfU5g4SUUUUU X-CM-SenderInfo: polqt0awwwqx5xdzvxpfor3voofrz/ Content-Type: text/plain; charset="utf-8" From: Li Nan In md_do_sync(), when md_sync_action returns ACTION_FROZEN, subsequent call to md_sync_position() will return MaxSector. This causes 'curr_resync' (and later 'recovery_offset') to be set to MaxSector too, which incorrectly signals that recovery/resync has completed, even though disk data has not actually been updated. To fix this issue, skip updating any offset values when the sync action is FROZEN. The same holds true for IDLE. Fixes: 7d9f107a4e94 ("md: use new helpers in md_do_sync()") Signed-off-by: Li Nan --- v3: add INTR flag, otherwise resync_min/max will be updated incorrectly. v2: fix typo. drivers/md/md.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/md/md.c b/drivers/md/md.c index e78f80d39271..f926695311a2 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -9397,6 +9397,11 @@ void md_do_sync(struct md_thread *thread) } =20 action =3D md_sync_action(mddev); + if (action =3D=3D ACTION_FROZEN || action =3D=3D ACTION_IDLE) { + set_bit(MD_RECOVERY_INTR, &mddev->recovery); + goto skip; + } + desc =3D md_sync_action_name(action); mddev->last_sync_action =3D action; =20 --=20 2.39.2