From nobody Tue Jun 9 01:01:42 2026 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.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 7C9FE24DD15 for ; Mon, 25 May 2026 04:46:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779684416; cv=none; b=c6Qhu0x9yZc568lMn2oP6rP8O7kFqGK7PjZo+SsdSbLj70fK2CpeuK7Lu+qqrJlZKJsMIf49jA4PV4wIdjCiKuXlkGLLrQWy57jy2seFWN8oOBAK49/LqsBFiUy8u9ia3/Q7u4jcsPBLQzbxT9TGaULfKfxv2yU849Wz9i5klRA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779684416; c=relaxed/simple; bh=IVUOMbsQ/5O9enabpkBeFc9Ee49GZ6RlprTgnY458FA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aZnZ/cKluyxz42EpfxQM9aGvC5fdf3+6eJ/l+p8PlEukUbwdRr6dUZ6EpAAeKN01uKg6ZORfcTiw8eOJcJBxu4AA3tY7vd9e40Bwrw7NeHpXgrMdYrbkzTHG5Uk7U8fs/mAgnwHbeyAFH7q8k898pPQPGIIfxO1majn6EGkxF7Y= 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=UDF4YYPb; arc=none smtp.client-ip=209.85.216.51 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="UDF4YYPb" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-3660ab73adbso6519423a91.1 for ; Sun, 24 May 2026 21:46:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1779684415; x=1780289215; 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=mYO9b4nBy6nb/eNXMOncyTmIUMd72bXkjtRJ+nbJfwo=; b=UDF4YYPbiFeqS6IOHwLy1miHsQ3oi2oz7c2e7PVMwhIeQjeMRFjWbQ8PzoDU8EybCT q3obhi7CojzSd/h6kts0lt9kLN8RqEacQ3QlLLkoI8M5TWip2k69bfA2E4PmlMbpQ0IE 68puwCr6ywlzKpp2euTfdADMw0EqBAI5PZpXY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779684415; x=1780289215; 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=mYO9b4nBy6nb/eNXMOncyTmIUMd72bXkjtRJ+nbJfwo=; b=WpRm0kmtAd3c8je3EJrzozcgRdYGw/icIWdty/pihq4ECk8NYGYGrjOlHNMZmtmgjG BEr2qa0CJFOcWgfY6YPEmjPl3B1I6pbThq57gBLS5b63sY+ibbtE3GsbxSmGfS0PuLnW ti8DI0UMIFxEhYLzYOZ2RSq96fHbvJAy7/G3BRn25kmyyWgwImvJP1lsDZgdXqXlszPa V3oGcqboJrpESrSUW+WIm3FFXkJOvA98oVLJNf0g/BWNWbN7DWNvgW1lOPM7PiuOle0C IIz0q1Lq6VGbxWfumwa0LrfooWh2lzZXBBXOnux3QbBDqlvP5dosfJVAu48W8HDQrswL dL8A== X-Forwarded-Encrypted: i=1; AFNElJ93kTTIx/CXKZnQk/UGbzR0qp2ajzRfUSJH1245m0oSzhkk07iBnti1odBvSLT1+j84Je4BSyJCyJF5Aj0=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4jcNxRCG75vCs7arXt/WeDk33lnxdxi14Ny5O8WIF0Iwf25wI 3R3BgF5uQvba8aamjLIV0gcqzeCBC6oKUcALaXy8Any0aBUv9RcBuBbqJQsj4wIDew== X-Gm-Gg: Acq92OHlYxeE4muyJf4YATq6k4XVR60Vtiy62odlG2ljIobXdyveqOIRQ0s1SIAfJUu 9a4JkJpxAvhP5UBADGNcC8bSy2gDxxRdZ6Ml3AgWpV867p56RMZ9/ZLlK629uxcA3PoFn6SJIf3 MVrI5VuhLWWA/ii0bAUPitnXmn2jSiuNmA4q7AjpL3qzda7KG2s02dssdqmM0JvzdVCHMcd6vHQ OUj8FLVmX+1MXsy9n8a+sMUCxA5Oja2sNDkqNc1RdxOcy5yGGJ8XqaBVPox5nBjc3hBiLhoCMY8 78cijy3bXzSnX1RicRiR4hYqOddTx8GXmpxlcTm1CvJlhM0pfCy9B3NBpy5FRg5zNydXsHEBAaM uRiWmfIcx1PYhKkiJHn03OAaYBV1XYUjOogoroHNrWsyjV+S7OQP8xaHmxxQ22Z4EaCJGDairYi IeOKgKof+d6jBt2RygT7/HNTqc5Qz6L2XjsB+vS7XEauKdxmqGBxgEvTNO8yh373XZE/e5e215F dKo9+JTn53x X-Received: by 2002:a17:90b:2712:b0:35f:b9f1:fded with SMTP id 98e67ed59e1d1-36a6c79dd38mr9694674a91.12.1779684414811; Sun, 24 May 2026 21:46:54 -0700 (PDT) Received: from tigerii.tok.corp.google.com ([2a00:79e0:2031:6:8f7:7157:3ea6:a126]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6c680110sm4361447a91.4.2026.05.24.21.46.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 May 2026 21:46:54 -0700 (PDT) From: Sergey Senozhatsky To: Andrew Morton , Brian Geffon Cc: Minchan Kim , Richard Chang , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Sergey Senozhatsky Subject: [PATCH 1/2] zram: do not leak blk idx at the end of writeback Date: Mon, 25 May 2026 13:46:01 +0900 Message-ID: <20260525044639.1888561-2-senozhatsky@chromium.org> X-Mailer: git-send-email 2.54.0.746.g67dd491aae-goog In-Reply-To: <20260525044639.1888561-1-senozhatsky@chromium.org> References: <20260525044639.1888561-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" In certain cases zram_writeback_slots() loop can terminate with blk_idx being valid (in particular when we race with modification of last slot) but zram_writeback_slots() forgets to release the reserved block id, which leads to this block becoming unavailable for future writeback. Release valid blk_idx before returning from zram_writeback_slots(). Suggested-by: Brian Geffon Signed-off-by: Sergey Senozhatsky --- drivers/block/zram/zram_drv.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 07111455eecf..602abfe23797 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -1127,6 +1127,9 @@ static int zram_writeback_slots(struct zram *zram, if (req) release_wb_req(req); =20 + if (blk_idx !=3D INVALID_BDEV_BLOCK) + zram_release_bdev_block(zram, blk_idx); + while (atomic_read(&wb_ctl->num_inflight) > 0) { wait_event(wb_ctl->done_wait, !list_empty(&wb_ctl->done_reqs)); err =3D zram_complete_done_reqs(zram, wb_ctl); --=20 2.54.0.746.g67dd491aae-goog From nobody Tue Jun 9 01:01:42 2026 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.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 DB7E230EF63 for ; Mon, 25 May 2026 04:46:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779684418; cv=none; b=gU9zDvK9C5jgLCTWQHHDXuBbs3MhoNZdW61VhErzKQTu7xvzsIhatjBCQJpiMLE+IUxAZIySg5EzDqcVP+kLImEqQy2bBN7mJhAjH4fefIny1YkqbaoXhTfoJ6fhg5ZOvecLmOo6iWhAhjRXV/Qc3ITKZDUyFG41QokcVlunZms= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779684418; c=relaxed/simple; bh=Di6kHI+8IeD0EYwfBCWN/2Q4SCiHF/P5vJ2ApAlTlNk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OgxY6gp0JhyLRE35MWFFBkaPq/tWWCzO4cKK0b2tb2Cca2yDIx56E772rm0ERQ6KMBoXe6sB2+mb+Rw20gyJ4VkxDVXpaby4DZpgv9w0sptfYF2Knzw1UdUI8IoP3AyTTv9jGRkMBtAM+/fDmsvMulr8fd3XO1moAC4qnnxt/po= 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=GWBpHGux; arc=none smtp.client-ip=209.85.216.51 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="GWBpHGux" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-36abfe17c11so979700a91.0 for ; Sun, 24 May 2026 21:46:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1779684416; x=1780289216; 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=9gGF9YBn6GpTIO4fVhvrESIFDicPNTrXWsdQuH+NBxo=; b=GWBpHGuxpAPFN0yfdEDz+UVQYkqeG81bgjmnnCPlxbSHsmmgHPRPqLtKSgNXM/r2ND Lq2I/7SuSVAS7jVUttSDN2rBXPAjx8Zb61RIj8pdM0U/Sb2wG/PYgXRr3e1S69s3UjfB TUX4MqvX1PbAAW1rDarMytVZ1pr4Y4mkBFt+c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779684416; x=1780289216; 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=9gGF9YBn6GpTIO4fVhvrESIFDicPNTrXWsdQuH+NBxo=; b=jVLXqS/1mJUKggCb38ror/bTvpUefR0whtWKRAMBNbSFetG/RqzZ1mFTCwq3BqIMUv hoW6Qm9h3e8SaKr72fW2E9maMoHYTdnae65+pWtFoartb6xvZZ9ZLnvDWKK3RKXPUxd9 gZbdenZssDdBcNCgA2HIIexuzJxgWQreRWrNG0+peViCvxyhybD8d48Rrkl6iCERAFS/ q2YhwddyfUS3xu7TkVv+DZdKF0yNmy4aoErg1FUgyHl0cKYWevCbjoZCfW6l4OZsKw1V Wje1XJfBtjU17VyCTvAzeAG6vPBTOTTOYNVOVOk0enpIzXi69DY1ghyKvzNHsga8JS/8 0kLA== X-Forwarded-Encrypted: i=1; AFNElJ/s92+B3lIjMSE0TUJsnsV42SpQtqHsey68w7pB72FbpxGS58oJ3OtlQAZmlCoG4KS+uIIenkDoz8J0HRo=@vger.kernel.org X-Gm-Message-State: AOJu0YzughuS5V9pFgjzKXZOCiEY9i+l30KGdIMDTMOcuDfsBGjSLT0L oxrXn5eZ2ZOu4R6OtYoxFbKRMWLXrnJEPeP8S7Pd8NHohCOIcKby4WGoxvp+jmsNRw== X-Gm-Gg: Acq92OEXt8riV7W1Cu/PdUQc5zIGKj1ZGrJU7oMKlBZID1YRnh/gbEsPioS0thQ4eci H9vgWsSNHxAuAmEgSBR3mR6fFPtEX7nsUxBm1j8X7jzjENJiAB4JmzQhbkFnHpLpliDI2YRGDJx d/7Gsjir6z03CcGvAsIKTM2uaJkPHz5yTkg/ggXmshIZ7cDvQOSmjvqqtdBXtOFI6/pa/xIhIRE O/A/Ppp14DF9WSB8HXbKIMA6p6POk8VmR3Vz/VT1wxRFgSRqNs5vmut5cl8n4zkhxzcQ0aqpy2w XwBlbip/sL75H7IR1IiqXkoFrA7xnO1ZfpnIDYXn3HDr97haixFha3z4fALUioHnFdzo+ChmNao FNp9lSWkWitkFiLrjthVfF+FjuXbcu2FUfBen9dIiXMx4eAfmBdZMFOc9sSGhQ/34gXg9sH4jrA oHT1+2QUf8RJ/siAAMu5yOqpVx54ynPzbXeBUHgj2H3xhecEHkQ0w0ugH5def8qZrVDZ3f6rw1m nCu+qHWMpuD X-Received: by 2002:a17:90a:c106:b0:369:7003:4e2d with SMTP id 98e67ed59e1d1-36a676090bemr12015986a91.17.1779684416408; Sun, 24 May 2026 21:46:56 -0700 (PDT) Received: from tigerii.tok.corp.google.com ([2a00:79e0:2031:6:8f7:7157:3ea6:a126]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6c680110sm4361447a91.4.2026.05.24.21.46.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 May 2026 21:46:56 -0700 (PDT) From: Sergey Senozhatsky To: Andrew Morton , Brian Geffon Cc: Minchan Kim , Richard Chang , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Sergey Senozhatsky Subject: [PATCH 2/2] zram: clear trailing bytes of compressed writeback pages Date: Mon, 25 May 2026 13:46:02 +0900 Message-ID: <20260525044639.1888561-3-senozhatsky@chromium.org> X-Mailer: git-send-email 2.54.0.746.g67dd491aae-goog In-Reply-To: <20260525044639.1888561-1-senozhatsky@chromium.org> References: <20260525044639.1888561-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" When compressed writeback is available writtenback pages contain garbage PAGE_SIZE - obj_size trailing bytes. Zero out those trailing bytes before writeback to a backing device. Suggested-by: Brian Geffon Signed-off-by: Sergey Senozhatsky --- drivers/block/zram/zram_drv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 602abfe23797..7917fc7a2a29 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -2134,6 +2134,8 @@ static int read_from_zspool_raw(struct zram *zram, st= ruct page *page, u32 index) zs_obj_read_end(zram->mem_pool, handle, size, src); zcomp_stream_put(zstrm); =20 + memzero_page(page, size, PAGE_SIZE - size); + return 0; } #endif --=20 2.54.0.746.g67dd491aae-goog