From nobody Fri Oct 2 05:31:37 2026 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (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 E4CEE3515DE for ; Wed, 5 Aug 2026 02:19:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785896358; cv=none; b=Wmm5522sAKp4WzhkIzctHcQU5QARdXhByFgj/b4dGXf702wdJ7uZtumtnQI3xjQYaAG+l44RkHI/8GiIB261b1Is+9Us6yzZp8OFj/WUVqn928IOmYTw2sOxWM5wQLPPgxcGzp1CgpD7Xq86faNQsAnkDApUcbZnhTytYWSD7bo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785896358; c=relaxed/simple; bh=nUuZ2skQfOzg/qCPaXxIP7ZQgcAg/Aar9NHePDlidY4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=G7gb1d7qQXPMm1vmSpdcZHHbo57jcNw+2CR7xoBslNyvrkTaN4g9Yne18IQYNlW17evxjRZPFCPU9uqKdI76ZAquLKGJW2zLvENmBdSZ/2DSQo05zmpVSA7+gKblS7a1aFg4MV2FJeaZuUAL5w9nm9aLkxXjQsEIOOu7/gjvjYM= 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=aDNGcD5H; arc=none smtp.client-ip=209.85.216.48 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="aDNGcD5H" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-383b4a3755fso443332a91.3 for ; Tue, 04 Aug 2026 19:19:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1785896356; x=1786501156; 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:content-type; bh=iLX43ezAvQWWJkXB9Urrmu7vcoPvWM7hSUWS7Iz4D28=; b=aDNGcD5HoyVE6TmgPFOr4MlJCpJRlb5Gg9QsTgUq2iJG3lN3Whe67iY3X9WbgBbp+e mutgoztQol7SuecW2F79J9FM7t29ab5dj0RhpG7jw6oHbs8I5HuIWqbRC67jSEtppL+N vDixLNEL/+wjMRb60CLa5qgae2yLENFUWCOQY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785896356; x=1786501156; 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:content-type; bh=iLX43ezAvQWWJkXB9Urrmu7vcoPvWM7hSUWS7Iz4D28=; b=sOJnojDBl7PAfIhdx1Z8aLZ8BRDfgdto+KLhFHfAVLRl6ykZ4CYhvqujbbiS8+B1RI K7mYvlqBAsliPOeTpj31BFZzx4XZO5DlAEkw+L4dLk2uDqO00M5zgZykzI0qQf0QHBKt 6noKfn6P8XaVlnUww5FZ8nwVyUxL9tNBTJRn+XMspzH9njV4qqBX7fhlvjdJ3ouXxdX2 mhdJAG2/nT1A75dDyTUJvK4I/QV2jFiFdldb1AD8W+0cvIJoDf15lM0tzD8H/2y3a86j x1GXtqGQ9FD8MvpF/nccAHn3D5IFbVwAn38vb3Gi0UsXraYVdw4jh08yJHOD5jAsXnYE 8unA== X-Forwarded-Encrypted: i=1; AHgh+RqmOi8ZIAOZXr1ohuwoKQWMKaM4siLtH0nG1P99WsCUPNMKOEJ+Jtemm0Iknutq9kE3a7IIyC6rl3ocBN8=@vger.kernel.org X-Gm-Message-State: AOJu0YwZVs8ffBiDroTJSOS01nuHZUuzkLHers9FhSfXwI0Gu78JVn4i YDEhAx1CGH/byUhM9qUzmX4rc9pY/EnRfOf7/yzE4f3T6QsVO4lVyvnnfOTEtEz9/w== X-Gm-Gg: AR+sD121W+DjL/1O/F4nf56pg5AoKqIae02LZw1RA3F+kT8hnlKCEax6UtgJtor3orx ldKYubGSJsA/uBmPERH5G7hpDYE12wnoBKJmpNGn6Q7wnFCIhxRCfbqMUtWkBJoj3VFADvf5Lot yVc4/fjC2sz3fhjTquouikbvFt2WLpbtTB77Wgms50+AuW7LvzrLuc14cWwA9PyjmIyV65YNaB9 k0l9C9gywXgT9GOFH+Z/ZGilXFwBUs8U7LKiQRY7sAASx1QyfmyAdC4u32/Dkc5331gBIItBHNB t8mFIMC9FwBkOqEFzbCN6TLb9p/7U8Y0LG8sws87snix2j3ILfVFTMr0+Wl7ANNcw3iNFkTU83U 3dNlIS8GyK2nCH0emNU//O1sFcmihLezZ8zG/XAkf0MAsbjMD1sxMYfHiFms05lYcqFGQ6YhD1c y7Ep1sP9Pgr7UZ0a/EkMGH1bqA0jpUIXqQ1JvWmZu1pSvN9W+mqXGNSJT0ZElWzv5cepeoGMkTR UTAyIdpAfGteZgvxLrsPXz+T9ktinXoHnbAteBHxPG11jKNO2b7 X-Received: by 2002:a17:90b:4d91:b0:36d:b424:4f17 with SMTP id 98e67ed59e1d1-3903c53799cmr2986763a91.1.1785896356174; Tue, 04 Aug 2026 19:19:16 -0700 (PDT) Received: from tigeriii.tok.corp.google.com ([2a00:79e0:2031:6:32eb:b46b:e9eb:65c5]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3903d1971besm543489a91.0.2026.08.04.19.19.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Aug 2026 19:19:15 -0700 (PDT) From: Sergey Senozhatsky To: Andrew Morton Cc: Minchan Kim , Jens Axboe , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, Longlong Xia , Sergey Senozhatsky , stable@vger.kernel.org Subject: [PATCH] zram: freeze device queue before device reset Date: Wed, 5 Aug 2026 11:18:44 +0900 Message-ID: <20260805021854.1057715-1-senozhatsky@chromium.org> X-Mailer: git-send-email 2.55.0.571.g244d577d93-goog 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" Device reset does not take into account in-flight async IO requests so we can free meta table and reset device concurrently with those requests being executed. The block layer guidelines indicate that queue state should be protected by blk_mq_freeze_queue() during teardown. Freeze zram queue before device reset. Fixes: cd67e10ac699 ("zram: promote zram from staging") Link: https://sashiko.dev/#/patchset/20260804065919.3970386-1-xialonglong20= 25@163.com Cc: stable@vger.kernel.org Signed-off-by: Sergey Senozhatsky --- drivers/block/zram/zram_drv.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 56183c827e1b..3b9dfcae9317 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -2842,6 +2843,9 @@ static void zram_destroy_comps(struct zram *zram) =20 static void zram_reset_device(struct zram *zram) { + unsigned int memflags; + + memflags =3D blk_mq_freeze_queue(zram->disk->queue); guard(rwsem_write)(&zram->dev_lock); =20 zram->limit_pages =3D 0; @@ -2855,6 +2859,7 @@ static void zram_reset_device(struct zram *zram) zram_destroy_comps(zram); memset(&zram->stats, 0, sizeof(zram->stats)); reset_bdev(zram); + blk_mq_unfreeze_queue(zram->disk->queue, memflags); } =20 static ssize_t disksize_store(struct device *dev, struct device_attribute = *attr, --=20 2.55.0.571.g244d577d93-goog