From nobody Tue Dec 2 01:27:23 2025 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 065512F6919 for ; Sat, 22 Nov 2025 07:41:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763797265; cv=none; b=boWM7mBS5nxjsriV7XyhKGNozgK5gOP4mVsAwk8sj+UlCaq/1L3ODQamxXQ7e7QmCE7SipZvGsZa4ggUFdGxNI/lEEM4XEjlVt/HVb1En2B4qSbFo9K4GJjzuq99NZpAFW/bdqpUpNcMZecBQqG37Vfwayvx+ZHooaN3GQyaXvY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763797265; c=relaxed/simple; bh=qElJlRCsFrs2BiuIGEpQgPbhmv6Qt0jtFelo/Sc3eqA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PIe/EfY/L2u2nlcHoP/75loILovwHW3xL97Cuf2bYvo7I7xZhqmCNyV0VIzV1FnvlkBn1aHFY7XAemwwFVettQT51Kb0dH4GO0HZ+quVAopGJ95U9GX+ilfXczMccwYfBiTCido5QloMYKdnK+smy4PEUtUhet6NyLGc4dfO3w4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=DxlxOgIu; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="DxlxOgIu" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-297f35be2ffso42001475ad.2 for ; Fri, 21 Nov 2025 23:41:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1763797263; x=1764402063; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LukW8/snVEFz9ku8flFGtdBZP5+NLLDt4ByDCK08AXY=; b=DxlxOgIukSzU+b8jpRVFOByvHBNKNIUyBNWRJlwVYmKPMJkv0csXwp9ZF+QfVZtuSA heHumVbvH2br7IPukBcS03iirWgTZosPoo9+aG39eO+/Akw+FEvaYDXwvBt8sOSnzEyB mipvsk73leBSsFImjJvgfEO6yfdnKmNblRpOs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763797263; x=1764402063; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LukW8/snVEFz9ku8flFGtdBZP5+NLLDt4ByDCK08AXY=; b=jS86k+7/BZI9thhpQX+DPGi/q4By3QTSkKnF5W3GHSGaT8PR0eWJNi55QsC/WY7ObD zu72wyq7wUB8tLw1UqrWg5r7HG8/pe8ZTjb4qMvD5+baXvs8X0Mf5/62hoygbabTiia4 XlRImuICNKIJDY7mQa/kNQOmtXn/mrmh4puXfzfzkU7gphjIHPG5j3zy0w2UdB20FTCn 6n7ZM70fMJTrgbl4lvosZWbHj3RHBzpFLXKbf1CWu2TdVOC5ge5mPagIauJPO3BGbuHp X1ssSDY7ZijWK4oDTCYayQu0ijSRCTVequYz+aVhHY7nhlGTfgreb/+XGzPjxHvhU0eY xzwQ== X-Forwarded-Encrypted: i=1; AJvYcCW7pbVqex4DzPPuTZ+SQjQ7vLfWQi6K1gqq5EfvX1AhAceIr2WlSUBxtpaMcTr//CwHIzh5BDdynjVYGqI=@vger.kernel.org X-Gm-Message-State: AOJu0YwKL6HDw8PSXIHDdyWlPZ3g4/bG2w3qNn9JcpmItDZG3pkzgqCt BbkwrU/GbcDGWbohCUYLMl2SYBKoD0EaURlDChXKiVkxVsPBgP4G6LOs+MD0ytaNKg== X-Gm-Gg: ASbGncv2JI8zYxAKiTDFeX1Z67p/U8UMmbzp68Xs45COkBdAywIQ0GooWMa2ny9MOA0 lOMF3roCRL3z5vX3Re+PzNte3ttp3/TOlglynfDbB9BwdFgDHIDBaSedYIatDEI6Z0Ju8A/7aeL CC5KpdQdnT3C1tzN5cQh6AKlrbGbJYIDLubV9+vsTaYpeh0yYb7rd/i2orfz1XKPwlECMpmZtkp VOQusySY7FtP990V1VYQruWbrJEuJxxf+uIeezr7MMLzceehUFeBzmi0GPDUKTq1MHO8N47OGJ9 7DzLgGv5phLr8UzU7steETARjaZ2MIaNpvS1x/KsXxOZDpfVECKitAk5yyPLO6MDFBGofIC0b3+ 5n3p8ISkRgXoufHGt50DcIEADH9RYtP1Ub7U/o41UiktnkXKvV9tP1ufZudHVg14Zg1Nrq/IdD6 nqgLjzUSWo/bxosRGHk9enEFI0LT5qHD+NSalvN/P/Dc/jpxkIxdFGk6s+HLY2rygC/IcCTtITs A== X-Google-Smtp-Source: AGHT+IG5fXLGOtdx1TXZEsH8pnjPldKBNeNKvpm0G0lpVW65pfoy/FrInnxHNz+d96LXs8VdsDk4Tg== X-Received: by 2002:a17:903:19d0:b0:295:2276:6704 with SMTP id d9443c01a7336-29b6c6cdf6cmr49815225ad.51.1763797263463; Fri, 21 Nov 2025 23:41:03 -0800 (PST) Received: from tigerii.tok.corp.google.com ([2a00:79e0:2031:6:948e:149d:963b:f660]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29b5b138628sm77771555ad.31.2025.11.21.23.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 23:41:03 -0800 (PST) From: Sergey Senozhatsky To: Andrew Morton , Minchan Kim , Yuwen Chen , Richard Chang Cc: Brian Geffon , Fengyu Lian , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org, Sergey Senozhatsky Subject: [PATCHv6 6/6] zram: read slot block idx under slot lock Date: Sat, 22 Nov 2025 16:40:29 +0900 Message-ID: <20251122074029.3948921-7-senozhatsky@chromium.org> X-Mailer: git-send-email 2.52.0.460.gd25c4c69ec-goog In-Reply-To: <20251122074029.3948921-1-senozhatsky@chromium.org> References: <20251122074029.3948921-1-senozhatsky@chromium.org> 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 Content-Type: text/plain; charset="utf-8" Read slot's block id under slot-lock. We release the slot-lock for bdev read so, technically, slot still can get freed in the meantime, but at least we will read bdev block (page) that holds previous know slot data, not from slot->handle bdev block, which can be anything at that point. Signed-off-by: Sergey Senozhatsky --- drivers/block/zram/zram_drv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 1f7e9e914d34..3428f647d0a7 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -1995,14 +1995,14 @@ static int zram_read_page(struct zram *zram, struct= page *page, u32 index, ret =3D zram_read_from_zspool(zram, page, index); zram_slot_unlock(zram, index); } else { + unsigned long blk_idx =3D zram_get_handle(zram, index); + /* * The slot should be unlocked before reading from the backing * device. */ zram_slot_unlock(zram, index); - - ret =3D read_from_bdev(zram, page, zram_get_handle(zram, index), - parent); + ret =3D read_from_bdev(zram, page, blk_idx, parent); } =20 /* Should NEVER happen. Return bio error if it does. */ --=20 2.52.0.460.gd25c4c69ec-goog