From nobody Tue Dec 2 02:58:13 2025 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 4CFCF3054D1 for ; Tue, 18 Nov 2025 07:30:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763451032; cv=none; b=hahhzjhooLe6yfjhQ56dzd7B/sXosKEsorZPZdyAOEgfArnLvNuiv0eccBkfcA39VKbXP9UaPbhA2I8WsE6Lo1JaHmeCnQyjn9Zq6hddmtMdV9g4kyS4qQ6BfALsXbHH/Py3ZfOwJESoGzlrlo8TdPDu40zcj/u4mMeV622CBf4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763451032; c=relaxed/simple; bh=83Tb0fnS8qFAanAr2oHDxC3ExyzkwPCMehzRY3O07yw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tybMualBC3bah4MhJVe2OSDyCDzx6wfb5eMMiUURTN/WCixvLdyznY8bBXOdPCpNu9fWB/I2UtSFxziafswsbf1eHhY8qu5P7GM6a2qdZhxnB60291bqg+dwpaXLoaU09buMZqlgC+2bJmToyu/53fAIaCW05TKawmHBrgkKzdI= 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=QLhmx3tl; arc=none smtp.client-ip=209.85.214.181 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="QLhmx3tl" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-29844c68068so52341475ad.2 for ; Mon, 17 Nov 2025 23:30:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1763451030; x=1764055830; 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=spTZ0mW8CsK7UvPfRSf8MeqzEHevliS4YgLZ2IGrH9o=; b=QLhmx3tlk+Ugapp+9raLzh8dW82alag814+KEwq10D/r7kel7p+0ghoRvjiIddv3rg t68W7Z3SSbAFeI8oiI0sovUSBzOycA2KCNDhoWJnwUieOmxdjEM+abJlii1xXKSYs734 +b5uVCSAUkqNSbgBxoGlB6A9PTEbng4kOQbos= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763451030; x=1764055830; 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=spTZ0mW8CsK7UvPfRSf8MeqzEHevliS4YgLZ2IGrH9o=; b=lzURaiLr3YWi5xXrrNXgMFd+IEMeXt5VfP5Vzj9cE2Sl3RcRpnq7cjJD42EByfa+Qo ZsoBCggQrFEmoxS2U1O/Fo8odW7lPQcMvzqpqPWr1d1NQqidRlbL2QPscK0KSD7Fl2Rk NPGe97i0x+DTs3TSPzFRtOwjrC8KEzxLmwq7BpIOoQIykGrsTIk7RW0nG9VJbiCWO1JV AZbiK0gj+JVp+vOJVntZStgT0ZpBhR3jx+ItwPp5ZJabL8LX7JnV/Ze20wY8Nh/KlLkC 4teEiplq0zbrYrVQGyy7TVoKar388WaX5RfI7xEHJxXSZ6Ln5vfez+9Se7/jLTN2Xg/8 dNpA== X-Forwarded-Encrypted: i=1; AJvYcCXjg4PbDYaKwsFXnR8R3Wl/67lhuDgbcMRBfx9FLTTa5S/QhorHo09YtzPLwkiinSgtfhHciFRJ/yprDkw=@vger.kernel.org X-Gm-Message-State: AOJu0YwbKn0Q//ADNbPFCTMfpehxo4DGMKCDLyM9clK8YeiZ+d6x5nV7 dI113kOB4ql5HPfCsCzRsn64ZfnJtlxPxsOk2ahndyWeMSF8iBhiQpuvb46ybGvztQ== X-Gm-Gg: ASbGnctYWPZ4UwL0yN0e0zRBmAQVLYn69CxhSxYL41C4TAOSbRo9a0K2vbRETpnxFP8 WWP5Pe79hQPVtAvQPD9eGTysGainqhFJ+2V3pNCsp5L6aKRJpPsIR+/cDlG3qD210aK/h1UxepW hkLKTsIgwBlUib+lXerLfFY4+2LXDn6Eauc9hxqbLBvBDr+gt54IyKYovGyiK5pKKKDrtFHn32r L2l/vwXviBASs/2oozeD+sxsRpFnc43XogDCZr9QOXA9CYrt73yqPRvBE6boA4M2zf5+6v40zgf BxkMBJL381UlMJJ4E8YHaBi27gah7lbaYQAIqdKDsox0G9DWvrTDsuPzsz7J7WjSTgGvgGnWwGL WJGri60ILmIg63gEa/EUMujMwBnqgHInNp0stFlmWQhH1tyUMqEXxApt3bcjRYvEt0axHfgnIql QyCdalWe3n9HeyvrejstvYhlmDc7BjergnxtYRRw== X-Google-Smtp-Source: AGHT+IHfTiRsjOnMwAynan9LOvPqDmjC2nm6QOrpvZK/BiOoKhMq5MVjGe3vyD/jJGgU5d35MZnMsQ== X-Received: by 2002:a17:903:19c3:b0:295:551b:4654 with SMTP id d9443c01a7336-2986a6ec988mr179562065ad.23.1763451029659; Mon, 17 Nov 2025 23:30:29 -0800 (PST) Received: from tigerii.tok.corp.google.com ([2401:fa00:8f:203:beba:22fc:d89b:ce14]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2985c2568ccsm163926215ad.50.2025.11.17.23.30.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Nov 2025 23:30:29 -0800 (PST) From: Sergey Senozhatsky To: Andrew Morton Cc: Minchan Kim , Yuwen Chen , Richard Chang , Brian Geffon , Fengyu Lian , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org, Sergey Senozhatsky Subject: [PATCHv4 6/6] zram: read slot block idx under slot lock Date: Tue, 18 Nov 2025 16:30:00 +0900 Message-ID: <20251118073000.1928107-7-senozhatsky@chromium.org> X-Mailer: git-send-email 2.52.0.rc1.455.g30608eb744-goog In-Reply-To: <20251118073000.1928107-1-senozhatsky@chromium.org> References: <20251118073000.1928107-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 93365811781b..77d0e636e053 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -1980,14 +1980,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.rc1.455.g30608eb744-goog