From nobody Mon Oct 6 12:06:36 2025 Received: from out30-111.freemail.mail.aliyun.com (out30-111.freemail.mail.aliyun.com [115.124.30.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 053B82E0402; Tue, 22 Jul 2025 10:00:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.30.111 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178444; cv=none; b=cchk9CnB66wZw5E1X0VO8o5tzen09R8OY9XCeo9ZrLOWJHF6xFrT2t+mCyx0aN+aSOQ8ThqFwl8nnrs5CFRAv8Glxy1ELfbpINrW8mdgAuq1oppNchLc7zBTZyGOuoYkerdwnbspMTEPg0AhEpbDPZlmHxE4JeyPEgxWGwFu16A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178444; c=relaxed/simple; bh=8YKGjpMzeEknsjq1h3Y6UJ7KcbQXboDSUy92iWzcFvM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=N26HvucFgB9vkT85kpVQkPlaZaoFSgLrzjwrsADgjLWpFTGdvzO+Hg0CUzhkj53pkrIs7oYgBi1zdQ+xiaN2lg9sA2gpeCd/OwCz6bMTelW2QQyoRTt9T7cNEkF4R61cUO/H86jyKkZC653kayPkAkxo/CAmJ+LRQedO5qut5JU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com; spf=pass smtp.mailfrom=linux.alibaba.com; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b=lSWBxzAV; arc=none smtp.client-ip=115.124.30.111 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b="lSWBxzAV" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1753178437; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=ZF3uulUA+O49eHkCxAbB2EunI3MkghBKmd/YNGAhKRU=; b=lSWBxzAVejulqNtCsU0y5NODdHNzLOr51Zh38/TRsMS5ePNBkCJLBED+lyrU4FTHoDoc08iRor+YwqhuQTCth5DKeb9josVFdK/VM3DXK/hqPBFlgzl16MZY+KehaPSHbDtEFJE65XJqadl+769Ajds4g5Y16JnD8XY788r+aJc= Received: from x31i01179.sqa.na131.tbsite.net(mailfrom:hsiangkao@linux.alibaba.com fp:SMTPD_---0WjVvTpN_1753178435 cluster:ay36) by smtp.aliyun-inc.com; Tue, 22 Jul 2025 18:00:36 +0800 From: Gao Xiang To: stable@vger.kernel.org, Greg Kroah-Hartman , Jan Kiszka , Stefan Kerkmann Cc: linux-erofs@lists.ozlabs.org, LKML , Gao Xiang , Yue Hu , Jingbo Xu , Chao Yu Subject: [PATCH 6.1.y 1/5] erofs: get rid of debug_one_dentry() Date: Tue, 22 Jul 2025 18:00:25 +0800 Message-ID: <20250722100029.3052177-2-hsiangkao@linux.alibaba.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> References: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> 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" commit e324eaa9790614577c93e819651e0a83963dac79 upstream. Since erofsdump is available, no need to keep this debugging functionality at all. Also drop a useless comment since it's the VFS behavior. Link: https://lore.kernel.org/r/20230114125746.399253-1-xiang@kernel.org Reviewed-by: Yue Hu Reviewed-by: Jingbo Xu Reviewed-by: Chao Yu Signed-off-by: Gao Xiang --- fs/erofs/dir.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c index 966a88cc529e..963bbed0b699 100644 --- a/fs/erofs/dir.c +++ b/fs/erofs/dir.c @@ -6,21 +6,6 @@ */ #include "internal.h" =20 -static void debug_one_dentry(unsigned char d_type, const char *de_name, - unsigned int de_namelen) -{ -#ifdef CONFIG_EROFS_FS_DEBUG - /* since the on-disk name could not have the trailing '\0' */ - unsigned char dbg_namebuf[EROFS_NAME_LEN + 1]; - - memcpy(dbg_namebuf, de_name, de_namelen); - dbg_namebuf[de_namelen] =3D '\0'; - - erofs_dbg("found dirent %s de_len %u d_type %d", dbg_namebuf, - de_namelen, d_type); -#endif -} - static int erofs_fill_dentries(struct inode *dir, struct dir_context *ctx, void *dentry_blk, struct erofs_dirent *de, unsigned int nameoff, unsigned int maxsize) @@ -52,10 +37,8 @@ static int erofs_fill_dentries(struct inode *dir, struct= dir_context *ctx, return -EFSCORRUPTED; } =20 - debug_one_dentry(d_type, de_name, de_namelen); if (!dir_emit(ctx, de_name, de_namelen, le64_to_cpu(de->nid), d_type)) - /* stopped by some reason */ return 1; ++de; ctx->pos +=3D sizeof(struct erofs_dirent); --=20 2.43.5 From nobody Mon Oct 6 12:06:36 2025 Received: from out30-130.freemail.mail.aliyun.com (out30-130.freemail.mail.aliyun.com [115.124.30.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 671082E7654; Tue, 22 Jul 2025 10:00:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.30.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178449; cv=none; b=TvNyGsUTBDsISoJyqqf854/8IEMhAF+HDGSayv7ednFzA0oA8HvnPhiGsUaFjp7krcUr6ndHqmXIBpl7ctdySbGEGRz9hcGC6LYt71xDJWSkZpCKsyFYfSSNlwhtfPDuSySVSzu75F9hBkBjJYLfzBUaHgod5qD+cMbX/rCcwHQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178449; c=relaxed/simple; bh=/ONZcVGzbRl6s/xzTD5IlwXiMfI9KKJfDsxegCaeZ28=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B/g1SyAgSvBmv2kz6TkI6vRPteVs/tmAefD2pnqJtZDT9vG6eWYQI64i1l0LQ3N9CTWgyM1j2CtXT1BUNpI9diOezQDet09ocGOv2ZJ/+bF4UjjRmShQaQTC/g5d+OEDmeU+WiiVjoFp4keIo9ea3rzk5/0Yu2GNm7h5ENZ6N3M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com; spf=pass smtp.mailfrom=linux.alibaba.com; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b=McaOUUyE; arc=none smtp.client-ip=115.124.30.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b="McaOUUyE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1753178439; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=5oAOIGk3wQoTxgJtJWrUbP/U+P36XOKJgL0cO17EcOQ=; b=McaOUUyErKq1oVZ+fTPe1sr0nvibIVJg7iVfqPUQ+GOyO8Qg+YpRqREIS/cy4jHFVIfGDur31gnVSeNh5nVFXKfZnpgzT8xDuMTTHW/Fo4jONxK9Pk0ggpUANPG2IskJU+Upq4i4kqOkb6dtxFl8FhfSsPR4ygQTwUZy7i7Qrjo= Received: from x31i01179.sqa.na131.tbsite.net(mailfrom:hsiangkao@linux.alibaba.com fp:SMTPD_---0WjVvTq1_1753178436 cluster:ay36) by smtp.aliyun-inc.com; Tue, 22 Jul 2025 18:00:37 +0800 From: Gao Xiang To: stable@vger.kernel.org, Greg Kroah-Hartman , Jan Kiszka , Stefan Kerkmann Cc: linux-erofs@lists.ozlabs.org, LKML , Gao Xiang , Chao Yu Subject: [PATCH 6.1.y 2/5] erofs: sunset erofs_dbg() Date: Tue, 22 Jul 2025 18:00:26 +0800 Message-ID: <20250722100029.3052177-3-hsiangkao@linux.alibaba.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> References: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> 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" commit 10656f9ca60ed85f4cfc06bcbe1f240ee310fa8c upstream. Such debug messages are rarely used now. Let's get rid of these, and revert locally if they are needed for debugging. Signed-off-by: Gao Xiang Reviewed-by: Chao Yu Link: https://lore.kernel.org/r/20230414083027.12307-1-hsiangkao@linux.alib= aba.com --- fs/erofs/inode.c | 3 --- fs/erofs/internal.h | 2 -- fs/erofs/namei.c | 9 +++------ fs/erofs/zdata.c | 5 ----- fs/erofs/zmap.c | 3 --- 5 files changed, 3 insertions(+), 19 deletions(-) diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c index 7dcf350b9fef..3cbef6318b7b 100644 --- a/fs/erofs/inode.c +++ b/fs/erofs/inode.c @@ -26,9 +26,6 @@ static void *erofs_read_inode(struct erofs_buf *buf, blkaddr =3D erofs_blknr(sb, inode_loc); *ofs =3D erofs_blkoff(sb, inode_loc); =20 - erofs_dbg("%s, reading inode nid %llu at %u of blkaddr %u", - __func__, vi->nid, *ofs, blkaddr); - kaddr =3D erofs_read_metabuf(buf, sb, blkaddr, EROFS_KMAP); if (IS_ERR(kaddr)) { erofs_err(sb, "failed to get inode (nid: %llu) page, err %ld", diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index d7cd1e619d46..126970932805 100644 --- a/fs/erofs/internal.h +++ b/fs/erofs/internal.h @@ -32,10 +32,8 @@ __printf(3, 4) void _erofs_info(struct super_block *sb, #define erofs_info(sb, fmt, ...) \ _erofs_info(sb, __func__, fmt "\n", ##__VA_ARGS__) #ifdef CONFIG_EROFS_FS_DEBUG -#define erofs_dbg(x, ...) pr_debug(x "\n", ##__VA_ARGS__) #define DBG_BUGON BUG_ON #else -#define erofs_dbg(x, ...) ((void)0) #define DBG_BUGON(x) ((void)(x)) #endif /* !CONFIG_EROFS_FS_DEBUG */ =20 diff --git a/fs/erofs/namei.c b/fs/erofs/namei.c index 8332428b780c..c0d5ffb62420 100644 --- a/fs/erofs/namei.c +++ b/fs/erofs/namei.c @@ -203,16 +203,13 @@ static struct dentry *erofs_lookup(struct inode *dir,= struct dentry *dentry, =20 err =3D erofs_namei(dir, &dentry->d_name, &nid, &d_type); =20 - if (err =3D=3D -ENOENT) { + if (err =3D=3D -ENOENT) /* negative dentry */ inode =3D NULL; - } else if (err) { + else if (err) inode =3D ERR_PTR(err); - } else { - erofs_dbg("%s, %pd (nid %llu) found, d_type %u", __func__, - dentry, nid, d_type); + else inode =3D erofs_iget(dir->i_sb, nid); - } return d_splice_alias(inode, dentry); } =20 diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index 32ca6d3e373a..5c0f855ab18d 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -818,8 +818,6 @@ static int z_erofs_do_read_page(struct z_erofs_decompre= ss_frontend *fe, =20 if (offset + cur < map->m_la || offset + cur >=3D map->m_la + map->m_llen) { - erofs_dbg("out-of-range map @ pos %llu", offset + cur); - if (z_erofs_collector_end(fe)) fe->backmost =3D false; map->m_la =3D offset + cur; @@ -935,9 +933,6 @@ static int z_erofs_do_read_page(struct z_erofs_decompre= ss_frontend *fe, if (err) z_erofs_page_mark_eio(page); z_erofs_onlinepage_endio(page); - - erofs_dbg("%s, finish page: %pK spiltted: %u map->m_llen %llu", - __func__, page, spiltted, map->m_llen); return err; } =20 diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c index 2cd70cf4c8b2..d2d7fe826091 100644 --- a/fs/erofs/zmap.c +++ b/fs/erofs/zmap.c @@ -603,9 +603,6 @@ static int z_erofs_do_map_blocks(struct inode *inode, =20 unmap_out: erofs_unmap_metabuf(&m.map->buf); - erofs_dbg("%s, m_la %llu m_pa %llu m_llen %llu m_plen %llu m_flags 0%o", - __func__, map->m_la, map->m_pa, - map->m_llen, map->m_plen, map->m_flags); return err; } =20 --=20 2.43.5 From nobody Mon Oct 6 12:06:36 2025 Received: from out30-131.freemail.mail.aliyun.com (out30-131.freemail.mail.aliyun.com [115.124.30.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DBAC42E7658; Tue, 22 Jul 2025 10:00:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.30.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178450; cv=none; b=qKtXpuIOscotJRWdFCgtkTyJBk/Ye7RJBcmWiTmoKFQ3ssVgeCcgLhQhIwWbf3SKh+VSxenIVZnKfGsDCITexU0mUM1EgWc4+c/ZhvJSAvwji1WRv3sKo7ZS1nwre6Gf1KwmFzerng1vHxtxbNVXfLA1VToCpq0aATPrDisuOUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178450; c=relaxed/simple; bh=9KKGtC/eAQdmsyrYbT5A3KhgXOXNHvoyazeOTg7og3g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cZVX247aqYJ5L8+pVuuurKS773wV6I3+I1rO+iaWcj7qCxh5b7d+VV+oVVgy6t6Jsnwn1yUstasnwE/LkhGIiw0GYfEB276UZ9EqbcEBUGlL7KRES3IJmo9UP5wvyPxQwVxY9PhOZfqu6oNh6qLd/DefWB2Phdv+VEuya1X4gCQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com; spf=pass smtp.mailfrom=linux.alibaba.com; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b=oWrN6AWa; arc=none smtp.client-ip=115.124.30.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b="oWrN6AWa" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1753178439; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=peBcjQkGGRXveCOODLAnQs8d0uMvJgOnnZ+JapebP7o=; b=oWrN6AWaS1Q+ccRGyflLeYjsw2ADe9ARCuZqTrHGEUbt0eQsyUTwPsCXA71SBHToSZZSte0V7k3kvGNNZ6am9AgnE303ZgSabHn6RCwdHCd7/CIJlkSeucSASmUYN5p4EPJ9xps7cceOIDtam7+mSWSG07Y7gggb3tpulLw7Sqc= Received: from x31i01179.sqa.na131.tbsite.net(mailfrom:hsiangkao@linux.alibaba.com fp:SMTPD_---0WjVvTqv_1753178437 cluster:ay36) by smtp.aliyun-inc.com; Tue, 22 Jul 2025 18:00:38 +0800 From: Gao Xiang To: stable@vger.kernel.org, Greg Kroah-Hartman , Jan Kiszka , Stefan Kerkmann Cc: linux-erofs@lists.ozlabs.org, LKML , Gao Xiang , Yue Hu , Chao Yu Subject: [PATCH 6.1.y 3/5] erofs: drop z_erofs_page_mark_eio() Date: Tue, 22 Jul 2025 18:00:27 +0800 Message-ID: <20250722100029.3052177-4-hsiangkao@linux.alibaba.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> References: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> 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" commit 9a05c6a8bc26138d34e87b39e6a815603bc2a66c upstream. It can be folded into z_erofs_onlinepage_endio() to simplify the code. Reviewed-by: Yue Hu Reviewed-by: Chao Yu Signed-off-by: Gao Xiang Link: https://lore.kernel.org/r/20230817082813.81180-5-hsiangkao@linux.alib= aba.com --- fs/erofs/zdata.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index 5c0f855ab18d..b05ca443cfdf 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -144,22 +144,17 @@ static inline void z_erofs_onlinepage_split(struct pa= ge *page) atomic_inc((atomic_t *)&page->private); } =20 -static inline void z_erofs_page_mark_eio(struct page *page) +static void z_erofs_onlinepage_endio(struct page *page, int err) { - int orig; + int orig, v; + + DBG_BUGON(!PagePrivate(page)); =20 do { orig =3D atomic_read((atomic_t *)&page->private); - } while (atomic_cmpxchg((atomic_t *)&page->private, orig, - orig | Z_EROFS_PAGE_EIO) !=3D orig); -} - -static inline void z_erofs_onlinepage_endio(struct page *page) -{ - unsigned int v; + v =3D (orig - 1) | (err ? Z_EROFS_PAGE_EIO : 0); + } while (atomic_cmpxchg((atomic_t *)&page->private, orig, v) !=3D orig); =20 - DBG_BUGON(!PagePrivate(page)); - v =3D atomic_dec_return((atomic_t *)&page->private); if (!(v & ~Z_EROFS_PAGE_EIO)) { set_page_private(page, 0); ClearPagePrivate(page); @@ -930,9 +925,7 @@ static int z_erofs_do_read_page(struct z_erofs_decompre= ss_frontend *fe, goto repeat; =20 out: - if (err) - z_erofs_page_mark_eio(page); - z_erofs_onlinepage_endio(page); + z_erofs_onlinepage_endio(page, err); return err; } =20 @@ -1035,9 +1028,7 @@ static void z_erofs_fill_other_copies(struct z_erofs_= decompress_backend *be, cur +=3D len; } kunmap_local(dst); - if (err) - z_erofs_page_mark_eio(bvi->bvec.page); - z_erofs_onlinepage_endio(bvi->bvec.page); + z_erofs_onlinepage_endio(bvi->bvec.page, err); list_del(p); kfree(bvi); } @@ -1205,9 +1196,7 @@ static int z_erofs_decompress_pcluster(struct z_erofs= _decompress_backend *be, /* recycle all individual short-lived pages */ if (z_erofs_put_shortlivedpage(be->pagepool, page)) continue; - if (err) - z_erofs_page_mark_eio(page); - z_erofs_onlinepage_endio(page); + z_erofs_onlinepage_endio(page, err); } =20 if (be->decompressed_pages !=3D be->onstack_pages) --=20 2.43.5 From nobody Mon Oct 6 12:06:36 2025 Received: from out30-124.freemail.mail.aliyun.com (out30-124.freemail.mail.aliyun.com [115.124.30.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E56D32E1C5B; Tue, 22 Jul 2025 10:00:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.30.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178446; cv=none; b=PTfUp8s8/7yIFu/6koPJ1rAcQ9Y9XA+gbhV7NsikS0NYXLgkfhECzHRH5aSzSqTURyBp3uW7b9Q+dW9F8pcKL0G5XVLY8DdQqynj3vLWAzEASEEa+RiXz3H5tbnLSlhRY09X9wzqJWlO5XlNgyZEDqINOmNtzbCDGRFkt4bDuL0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178446; c=relaxed/simple; bh=YsSTRr30KqKgxd9rZ5VWP+z9Iy/mEK/wUMenALLyxyk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fYOawJ0SzE91Li92A/6f4CQlAhYPmIz5m/Hltfwp9fxTVvJr/OwatyOSmm1n/mdyOItGqNmWZ/6rS3YAd9d5a3Fs8wsr4YR35E8Oh+nCqL6CG40oyaynKMLCdGCnJz7vsJ3+CJW/sHapJA+ShHOgFskvfgm27XyHPlxPSHoGskA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com; spf=pass smtp.mailfrom=linux.alibaba.com; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b=a48jtkUH; arc=none smtp.client-ip=115.124.30.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b="a48jtkUH" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1753178440; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=gxV1WKa5S/2KsJQTNxmbmmX0Y1yNxfEKlF7T1cOeQVY=; b=a48jtkUH1Tgwl0xxTWuRgGE3x/LtMXFXsUBYILMGwTYoc8+6bwyOUsk5QHrFsv+dDTKOzJTMBiqODvEvMmf6xuFY+ji04nDw4pSIxJz7wNMVC3sk8UOTvCriWzj6hcDUNXtTMQz82NNCNDErQQR8AVzGPiOt3T2Cmi82MFMA768= Received: from x31i01179.sqa.na131.tbsite.net(mailfrom:hsiangkao@linux.alibaba.com fp:SMTPD_---0WjVvTra_1753178438 cluster:ay36) by smtp.aliyun-inc.com; Tue, 22 Jul 2025 18:00:39 +0800 From: Gao Xiang To: stable@vger.kernel.org, Greg Kroah-Hartman , Jan Kiszka , Stefan Kerkmann Cc: linux-erofs@lists.ozlabs.org, LKML , Gao Xiang , Yue Hu , Chao Yu Subject: [PATCH 6.1.y 4/5] erofs: simplify z_erofs_transform_plain() Date: Tue, 22 Jul 2025 18:00:28 +0800 Message-ID: <20250722100029.3052177-5-hsiangkao@linux.alibaba.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> References: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> 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" commit c5539762f32e97c5e16215fa1336e32095b8b0fd upstream. Use memcpy_to_page() instead of open-coding them. In addition, add a missing flush_dcache_page() even though almost all modern architectures clear `PG_dcache_clean` flag for new file cache pages so that it doesn't change anything in practice. Signed-off-by: Gao Xiang Reviewed-by: Yue Hu Reviewed-by: Chao Yu Link: https://lore.kernel.org/r/20230627161240.331-2-hsiangkao@linux.alibab= a.com Signed-off-by: Gao Xiang --- fs/erofs/decompressor.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c index 0eaa9e495346..b1746215efe6 100644 --- a/fs/erofs/decompressor.c +++ b/fs/erofs/decompressor.c @@ -323,7 +323,7 @@ static int z_erofs_transform_plain(struct z_erofs_decom= press_req *rq, const unsigned int lefthalf =3D rq->outputsize - righthalf; const unsigned int interlaced_offset =3D rq->alg =3D=3D Z_EROFS_COMPRESSION_SHIFTED ? 0 : rq->pageofs_out; - unsigned char *src, *dst; + u8 *src; =20 if (outpages > 2 && rq->alg =3D=3D Z_EROFS_COMPRESSION_SHIFTED) { DBG_BUGON(1); @@ -336,22 +336,19 @@ static int z_erofs_transform_plain(struct z_erofs_dec= ompress_req *rq, } =20 src =3D kmap_local_page(rq->in[inpages - 1]) + rq->pageofs_in; - if (rq->out[0]) { - dst =3D kmap_local_page(rq->out[0]); - memcpy(dst + rq->pageofs_out, src + interlaced_offset, - righthalf); - kunmap_local(dst); - } + if (rq->out[0]) + memcpy_to_page(rq->out[0], rq->pageofs_out, + src + interlaced_offset, righthalf); =20 if (outpages > inpages) { DBG_BUGON(!rq->out[outpages - 1]); if (rq->out[outpages - 1] !=3D rq->in[inpages - 1]) { - dst =3D kmap_local_page(rq->out[outpages - 1]); - memcpy(dst, interlaced_offset ? src : - (src + righthalf), lefthalf); - kunmap_local(dst); + memcpy_to_page(rq->out[outpages - 1], 0, src + + (interlaced_offset ? 0 : righthalf), + lefthalf); } else if (!interlaced_offset) { memmove(src, src + righthalf, lefthalf); + flush_dcache_page(rq->in[inpages - 1]); } } kunmap_local(src); --=20 2.43.5 From nobody Mon Oct 6 12:06:36 2025 Received: from out30-99.freemail.mail.aliyun.com (out30-99.freemail.mail.aliyun.com [115.124.30.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E5EF2E1C6F; Tue, 22 Jul 2025 10:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.30.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178446; cv=none; b=LpmyFvYYtMxWlBDUnDHBHlKV0k+3qebayFU0coEtAAywDlDy/+r4EZ+X7S4y/1yqImWWwotenaShJgavqKzW7FckdWisS6+IY2HnH6OsH3cMkE4/ciN9/UrRQeriWEobUsvYV54eGYXL6yDmM77XiFue+hm/wfbY8gwurKu27pI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753178446; c=relaxed/simple; bh=g7DTeiU4l5ar4apv/BbvkLZpwqIuHBj5jZ5VmSEh0rY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fxcCX5V7jG/pzdxCetROj5YUs19yiabFC0X3bcQlLB5M+TbzrYt70cH6xqu/3eCnwwbp6YmNdTv5eYF51f7kB+BsiFV6sM59JUbCsnZAIF1Twe5Ou38YV7WVGVkxhdjRWtboNhc8/vsrRNLJnLLthKqyw3hhJhOds53NEmMHjE4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com; spf=pass smtp.mailfrom=linux.alibaba.com; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b=x5dJz2Na; arc=none smtp.client-ip=115.124.30.99 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b="x5dJz2Na" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1753178441; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=cx+jOLR3PxH0EA25EZkKjnVRPI1GcY1CKzTmwRgcd+w=; b=x5dJz2NazUnQJ/4TXNhSa35C/SwlhTV9bg3hejBKC1RmHeZVqsmZPFxfwu5MWGnYpgysvxD4Z9d+RR4qeS3iAg7ZKkBCiXG49OKrJhWeJA99t+H8arF5FzUUOj1vUfmtEl3QuZw5WvsMDdC+PM0Jbxwr7B+/+PHA2Zu67O6WqNk= Received: from x31i01179.sqa.na131.tbsite.net(mailfrom:hsiangkao@linux.alibaba.com fp:SMTPD_---0WjVvTsC_1753178440 cluster:ay36) by smtp.aliyun-inc.com; Tue, 22 Jul 2025 18:00:41 +0800 From: Gao Xiang To: stable@vger.kernel.org, Greg Kroah-Hartman , Jan Kiszka , Stefan Kerkmann Cc: linux-erofs@lists.ozlabs.org, LKML , Gao Xiang Subject: [PATCH 6.1.y 5/5] erofs: address D-cache aliasing Date: Tue, 22 Jul 2025 18:00:29 +0800 Message-ID: <20250722100029.3052177-6-hsiangkao@linux.alibaba.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> References: <20250722100029.3052177-1-hsiangkao@linux.alibaba.com> 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" commit 27917e8194f91dffd8b4825350c63cb68e98ce58 upstream. Flush the D-cache before unlocking folios for compressed inodes, as they are dirtied during decompression. Avoid calling flush_dcache_folio() on every CPU write, since it's more like playing whack-a-mole without real benefit. It has no impact on x86 and arm64/risc-v: on x86, flush_dcache_folio() is a no-op, and on arm64/risc-v, PG_dcache_clean (PG_arch_1) is clear for new page cache folios. However, certain ARM boards are affected, as reported. Fixes: 3883a79abd02 ("staging: erofs: introduce VLE decompression support") Closes: https://lore.kernel.org/r/c1e51e16-6cc6-49d0-a63e-4e9ff6c4dd53@peng= utronix.de Closes: https://lore.kernel.org/r/38d43fae-1182-4155-9c5b-ffc7382d9917@siem= ens.com Tested-by: Jan Kiszka Tested-by: Stefan Kerkmann Link: https://lore.kernel.org/r/20250709034614.2780117-2-hsiangkao@linux.al= ibaba.com Signed-off-by: Gao Xiang --- fs/erofs/decompressor.c | 6 ++---- fs/erofs/zdata.c | 32 +++++++++++++++++++------------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c index b1746215efe6..e524c0b432f3 100644 --- a/fs/erofs/decompressor.c +++ b/fs/erofs/decompressor.c @@ -342,14 +342,12 @@ static int z_erofs_transform_plain(struct z_erofs_dec= ompress_req *rq, =20 if (outpages > inpages) { DBG_BUGON(!rq->out[outpages - 1]); - if (rq->out[outpages - 1] !=3D rq->in[inpages - 1]) { + if (rq->out[outpages - 1] !=3D rq->in[inpages - 1]) memcpy_to_page(rq->out[outpages - 1], 0, src + (interlaced_offset ? 0 : righthalf), lefthalf); - } else if (!interlaced_offset) { + else if (!interlaced_offset) memmove(src, src + righthalf, lefthalf); - flush_dcache_page(rq->in[inpages - 1]); - } } kunmap_local(src); return 0; diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index b05ca443cfdf..5e6580217318 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -123,9 +123,11 @@ static inline unsigned int z_erofs_pclusterpages(struc= t z_erofs_pcluster *pcl) =20 /* * bit 30: I/O error occurred on this page + * bit 29: CPU has dirty data in D-cache (needs aliasing handling); * bit 0 - 29: remaining parts to complete this page */ -#define Z_EROFS_PAGE_EIO (1 << 30) +#define Z_EROFS_ONLINEPAGE_EIO 30 +#define Z_EROFS_ONLINEPAGE_DIRTY 29 =20 static inline void z_erofs_onlinepage_init(struct page *page) { @@ -144,7 +146,7 @@ static inline void z_erofs_onlinepage_split(struct page= *page) atomic_inc((atomic_t *)&page->private); } =20 -static void z_erofs_onlinepage_endio(struct page *page, int err) +static void z_erofs_onlinepage_end(struct page *page, int err, bool dirty) { int orig, v; =20 @@ -152,16 +154,20 @@ static void z_erofs_onlinepage_endio(struct page *pag= e, int err) =20 do { orig =3D atomic_read((atomic_t *)&page->private); - v =3D (orig - 1) | (err ? Z_EROFS_PAGE_EIO : 0); + DBG_BUGON(orig <=3D 0); + v =3D dirty << Z_EROFS_ONLINEPAGE_DIRTY; + v |=3D (orig - 1) | (!!err << Z_EROFS_ONLINEPAGE_EIO); } while (atomic_cmpxchg((atomic_t *)&page->private, orig, v) !=3D orig); =20 - if (!(v & ~Z_EROFS_PAGE_EIO)) { - set_page_private(page, 0); - ClearPagePrivate(page); - if (!(v & Z_EROFS_PAGE_EIO)) - SetPageUptodate(page); - unlock_page(page); - } + if (v & (BIT(Z_EROFS_ONLINEPAGE_DIRTY) - 1)) + return; + set_page_private(page, 0); + ClearPagePrivate(page); + if (v & BIT(Z_EROFS_ONLINEPAGE_DIRTY)) + flush_dcache_page(page); + if (!(v & BIT(Z_EROFS_ONLINEPAGE_EIO))) + SetPageUptodate(page); + unlock_page(page); } =20 #define Z_EROFS_ONSTACK_PAGES 32 @@ -925,7 +931,7 @@ static int z_erofs_do_read_page(struct z_erofs_decompre= ss_frontend *fe, goto repeat; =20 out: - z_erofs_onlinepage_endio(page, err); + z_erofs_onlinepage_end(page, err, false); return err; } =20 @@ -1028,7 +1034,7 @@ static void z_erofs_fill_other_copies(struct z_erofs_= decompress_backend *be, cur +=3D len; } kunmap_local(dst); - z_erofs_onlinepage_endio(bvi->bvec.page, err); + z_erofs_onlinepage_end(bvi->bvec.page, err, true); list_del(p); kfree(bvi); } @@ -1196,7 +1202,7 @@ static int z_erofs_decompress_pcluster(struct z_erofs= _decompress_backend *be, /* recycle all individual short-lived pages */ if (z_erofs_put_shortlivedpage(be->pagepool, page)) continue; - z_erofs_onlinepage_endio(page, err); + z_erofs_onlinepage_end(page, err, true); } =20 if (be->decompressed_pages !=3D be->onstack_pages) --=20 2.43.5