From nobody Fri Oct 2 09:21:58 2026 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (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 C235337F33B for ; Mon, 3 Aug 2026 07:57:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785743848; cv=none; b=oYdBvn3gDHjQE20dfErCJ/gCrGJTDdeeeCeko25evHCbc8TSCs1lyufguRHTk/Zyq2Fu5q3gz0n4ZjEfOo9dAnF9xD/wcTSeMyDKHEKDwZ3QSPaFmnH8LucWqeT0+HzbbZDV4FKosjljJvE1fYYh+a7NK7/EScKLf8c5FXtk4CI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785743848; c=relaxed/simple; bh=aoCDEEk+ASDLGHAux3VhbPBlWfGkhWPJQrGoY/tVxEc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=qq0EEMrf5fqaUiPZJRxBY0A2yy1KAOskz+AkThGz7WyBHDP3DTfON/mAJDMB3Q4uMFNCKSdQlnWZhJwRg9cn/hUoNyc1RJskMJztx/vDFkXjEf/q1KIWIfWoPpLG0ZTuOx03Ozu84AeRilvPnv5SZSqZd0U9hEPxch+2Nua874A= 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=FoxMw75k; arc=none smtp.client-ip=209.85.210.173 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="FoxMw75k" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-84874b52eabso4240301b3a.0 for ; Mon, 03 Aug 2026 00:57:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785743846; x=1786348646; 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=pEKQNJ0GeZ0TkdVN8gs19LHlDQKs8ULpJdgXj5UynNs=; b=FoxMw75k4XNMBAKQQoMIC1qVua7/X4QtBmyForfcgqQtRNb3si6W9Yoe8/niebLPvg gaR68y3cYrCdFwWdeE7JMi5YirfOBg1YNBMIREg5ntaSehir7aSzIacpgxx5d+QrvBSh 8ojlcMsoTeiB/d3ElU3KF6dlrIunXkgGYDbnnhlo+JzJnM/oW58IiPVBDNamqPUvbMXz BjNcjgj/AxfuTzIQNxlFPsQ3bSCPWCfg3Z7keMEsAZC4FJ97lugv7KKiEG3DnHVaupTd RES0X/O+Bg4D1D5mDcKm5kRLdaj2Ki98C2t2u2BAxNVEUSQnVoaa2svuwHkGBqZz/4db +HCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785743846; x=1786348646; 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=pEKQNJ0GeZ0TkdVN8gs19LHlDQKs8ULpJdgXj5UynNs=; b=AO5jjHFwCRJFZ1XEQwsfZSkD/6fR+xiKikS0H8lSaESSI4ScPMRFQFvSKIHa2ACgKi 7ldzYJJy71OA0tU0u0rvN65E6Cd/JPsZLAXKlY9sNNpELhRXfnJCO28LPT1d9UVLX7oA x5R5iT2VrnnIMW1q11M6GxmrzL1lVlwvW92p+P5nP5Jg4Z0+SMRHgwGDc6XRdunJqj6X qlTjc0HilYAE/mwd0Me79fyGZqKxM7IZd3BBNWWN2e4UktzUUfYsyKHlUMIlG/Qd9hkI AsdjNc9LA3uaFSooJ9aHF4nW8OQ36pn0H2hLbz/cmLLcC85xcJCXi1K2SYy+mZGbIBva 6G4Q== X-Forwarded-Encrypted: i=1; AHgh+RrIX5q3HybfOJBlp1JNZZ184Rx/MfzxK022+ugQ84iGAVh4Vt7A2XXMoelXmQobSFYoaEW9QIf/SQAeKF8=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+DJ22d9PFMmYB8tBUR7HX2/z5JdlFyh+nOgWMRcKrqTOOtTJf PWPZXDViPJ3pYggD4kifPhx71RtXsuuW8RNC/DYkkezPoErhfnqewoHlgc1SzDLt X-Gm-Gg: AR+sD106XzOhnFqJsWmCF/jBwDRUlZhb1zELz5y3eOzgVGl4gmfu8CY/A22V2yVMLIK sVKaXxW5bxLD9diUZZg9mtTCwBc71O+eEsb9hvW+4rhDrazyUJV4uI+3s29Gyf2suo285xNn4CF BO7N/CBVnicZY87pmtrT4ICuKUn/3HnimWZ/wOKU3KVJIb9ZIxhoYVNqwXHdoyY4zO3N4aBGlr0 v+McRKXS0r3VuXQdaZM69RSaZwUr0ht3rrfQxr0kliyoIs7rDeUh+XCCEiw7biW440yhqaDNmde v/XxRjUht6FEO22gWb97BNygJJ4Ai0buTZ9XgXkn7ysDvFllXeAgOEA5cRHDlNlZmSUPQ4jyjGz 7FNiRLQSGsYb6rGhlNAKcyMvPwBAVgNnQtpR5rBL9cL0V3TFluSaseoQluSMpE2O4JsGZVqNFGf IR0zEbBxzb4m6Ok5Ad72/n0APpIQlvAMsXFXyQySOLUz1d1yvtbcPPa9Kp5fOqJPADshEfZmlc8 hYUVNsYKFTwZCyCTZYCJqav6E83LtPYKjI= X-Received: by 2002:a05:6a00:99c:b0:848:2f77:e2da with SMTP id d2e1a72fcca58-84ee498e27amr7666176b3a.67.1785743845990; Mon, 03 Aug 2026 00:57:25 -0700 (PDT) Received: from qiwenjie-ThinkCentre-M760t.mioffice.cn ([43.224.245.241]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84eecf81b08sm2166790b3a.22.2026.08.03.00.57.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Aug 2026 00:57:25 -0700 (PDT) From: Wenjie Qi X-Google-Original-From: Wenjie Qi To: jaegeuk@kernel.org, chao@kernel.org Cc: yuchao0@huawei.com, linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, qiwenjie@xiaomi.com, qwjhust@gmail.com, stable@kernel.org Subject: [PATCH v2] f2fs: stop checkpoint on compressed write IO error Date: Mon, 3 Aug 2026 15:57:16 +0800 Message-ID: <20260803075716.1400915-1-qiwenjie@xiaomi.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: quoted-printable Content-Type: text/plain; charset="utf-8" Compressed writeback is currently charged as F2FS_WB_CP_DATA through WB_DATA_TYPE(..., fio->compressed_page). That classification keeps compressed cluster writeback under the checkpoint-guaranteed path for POR safety after fsync/sync. When such a compressed write bio fails, f2fs_compress_write_end_io() only records -EIO in the inode mapping. Ordinary F2FS_WB_CP_DATA writeback also stops checkpoint on writeback failure, but compressed writeback does not. Checkpoint can therefore continue after a failed checkpoint-guaranteed compressed write and later persist metadata that points to compressed data blocks whose writeback failed. Stop checkpoint on failed compressed write IO the same way as other F2FS_WB_CP_DATA writeback. Fixes: 4c8ff7095bef ("f2fs: support data compression") Cc: stable@kernel.org Signed-off-by: Wenjie Qi --- v2: - rewrite the changelog around the existing checkpoint-guaranteed compressed writeback semantics - no code changes fs/f2fs/compress.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index caf522d667d6..9b1501004456 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -1488,8 +1488,11 @@ void f2fs_compress_write_end_io(struct bio *bio, str= uct folio *folio) f2fs_is_compressed_page(folio)); int i; =20 - if (unlikely(bio->bi_status !=3D BLK_STS_OK)) + if (unlikely(bio->bi_status !=3D BLK_STS_OK)) { mapping_set_error(cic->inode->i_mapping, -EIO); + if (type =3D=3D F2FS_WB_CP_DATA) + f2fs_stop_checkpoint(sbi, true, STOP_CP_REASON_WRITE_FAIL); + } =20 f2fs_compress_free_page(page); =20 --=20 2.43.0