From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E66B71F16B for ; Sun, 26 Apr 2026 09:35:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777196114; cv=none; b=sDq0FIBtcbX0M5+d8qcksxROeHr7haatvoS+yiH9iF6ovHuw5k3JW3CBWFRzm4N7EbDEUnNrXBTY39QUbVje6ruZkgyW716w2icyno5p0h1+sJT88Xcqyw4nFyHDuxBEO2pZcjjbzxkrCgEookOxPy3iup7KAHtFBZhTNvj1lTI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777196114; c=relaxed/simple; bh=zo624SWXuhPM4Qqrrddsot980vhyyvBwEm1SghzN+zk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=jGb5T+7eKTUKWWcqPZNR3SlmLVQLyediL3FhFBck4uT3OyRvkZdc6JvL1DeAsr2nXbmOGEWxXBSxanL/BjuAqJ8ECBi940oySXBBYmiVBI7JDl6vXSF23FGcx+azKUq28JTFS7dXyc7yE1IK0bkeGJgQVeaKbHfJvQXdD24XHPQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OMlHaW5s; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OMlHaW5s" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-4891c00e7aeso65634005e9.2 for ; Sun, 26 Apr 2026 02:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777196111; x=1777800911; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=xxoJ7/yROVN+x+XZWhCqJyIdDhBLXxU+umFFNtD2wEg=; b=OMlHaW5sphs4ZbaVoT/qgmK3Z/UEaNrm6Ljo6tXPihrBuhD92yA49cXXro6nHwcBaZ S2P+YoXrD2dfgPgzCkX8sWY34vGwPlkNWXILu0/1Q4RRyBpMNktLJCb05epbE8+hVSo8 MQnlCzL7DanIdH2mb/gAHtw0WUT/N88dK4G8+dx2DdA9RRWC5uHwATcCg5Qzgbw/v1Pu F5yB2t3fl//eshF+qgEckyAunty8uTwNvHlAS15/vNpXChmayq/kFVfWZtdRbIpKFBCH c7Sdv7F7UNM5MKlFSfINsUoknnslS1yPuCznJ/O/EHRtjFuSnDwFEDuh7P1tpy6aFLuI 1Xqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777196111; x=1777800911; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xxoJ7/yROVN+x+XZWhCqJyIdDhBLXxU+umFFNtD2wEg=; b=BmT8JRGB4hpq9QZrzfrxkvtdJRuClkqJSJKMPTzYQJQ2DyByn5jAVGffxVa8vRtXTf 0dGcXuUEPdbY7LyJPq1jQv2c9Fk3+tU63gsmPb+mbb7VLvyZkenypd96YyJo2Ewehmti tApF3NP9m9wYnRouckOjqMzgrP2uSfrwDouj5CP4vwd2vizFdDwoBf2r/ayExFZe9pWY Hn4/gt9hNSzVosD9OpaJyG6RvoYdyxToZ7lihRK15emFRbOYx/m+K6i6WZ31nGCtNs3r d7efIFby39jUMR1w/UzNKIKHb8vld6l8WE2exLRb3YcWApMQKHFeFjgJ1xynjFRCL4RG XXBg== X-Forwarded-Encrypted: i=1; AFNElJ/I2OQNLsxY8J2lAgj3w7LzXHXcD5V9Ri1bEdhVVqW4K4oYWjKIuYB2xV9wKVAEvz2h2pWXUF8eYplZRfo=@vger.kernel.org X-Gm-Message-State: AOJu0YzMLmjci1v/l372DWGNiQCOPDmGR6fY0Sg8r5xrBIrgnjgMkqam ZkKwNlX6g2C/GkoOHI/kGTbaXIEbLzgYY5Wv6Or69J/KFL3Is+Cs+kiTmEDlwQ== X-Gm-Gg: AeBDiesUaIg/zj0e6Kb4m6c+oFZRAaSjtCgNdRjbM9TDjp+4ZMGpXhIEXOEM2419my4 CmRgylHSG1vTvhOnCPiMN9esUHGsFbbqFQUmBEVGRfEravuTPkY+wEcUQGS/vowD1F0Q3f7tQRX pyEz8YujwpStqZASjqgFtG2kq7qhUpviUN0+rIe6AF2AypbNJSpybWQP2UdXQFWy4xpBvSYsPMr 6h6lQ6Xz4BY3izQ8mi4BN7N9x3MGSW5+URDCLPDCqMyyOvdlJeQboL5g5RG7satR2y2T/w7jQ7A O4O5FgT+JzBEM28RD7t0wkJs/pqz53qmQWQgLYISiMZF8BKP/R1EFPCvcq5erIDB5poNSFdAuLs 2tQBUZUhPvpmKMiYHcRJAeBUHsoyGjGW26EjjxGEqmbDo/a+Nnz4iH5DhB1FCnB58KnB2Utmj68 q6fTl9omJBx0zCMp+91mi373n8eMwruyqoRQ== X-Received: by 2002:a05:600c:1389:b0:485:9a50:338d with SMTP id 5b1f17b1804b1-488fb739d3amr518469975e9.3.1777196111138; Sun, 26 Apr 2026 02:35:11 -0700 (PDT) Received: from yocto.. ([2a02:3037:62d:99ab:d73c:851e:2ff6:71a5]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fb74c7a2sm224904625e9.1.2026.04.26.02.35.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:35:10 -0700 (PDT) From: Abd-Alrhman Masalkhi To: song@kernel.org, yukuai@fnnas.com, paul.e.luse@linux.intel.com, xni@redhat.com Cc: linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, Abd-Alrhman Masalkhi Subject: [PATCH] md/raid1: fix len reuse across rdevs in choose_first_rdev() Date: Sun, 26 Apr 2026 11:35:06 +0200 Message-ID: <20260426093506.14316-1-abd.masalkhi@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit choose_first_rdev() initializes the variable len before iterating over all rdevs, but passes it by reference to raid1_check_read_range(), which it might update *len and return 0 depending on the layout of the bad block region. As a result, 'len' can be modified during the first iteration and reused for subsequent rdevs, causing later devices to be evaluated with an incorrect length value. Fixes: 31a73331752d3 ("md/raid1: factor out read_first_rdev() from read_balance()") Signed-off-by: Abd-Alrhman Masalkhi --- drivers/md/raid1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index b549be9174bb..5f5dbf79c903 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -591,12 +591,12 @@ static int choose_first_rdev(struct r1conf *conf, struct r1bio *r1_bio, int *max_sectors) { sector_t this_sector = r1_bio->sector; - int len = r1_bio->sectors; int disk; for (disk = 0 ; disk < conf->raid_disks * 2 ; disk++) { struct md_rdev *rdev; int read_len; + int len = r1_bio->sectors; if (r1_bio->bios[disk] == IO_BLOCKED) continue; -- 2.43.0