* [PATCH 6.1.y 0/5] erofs: backport for `erofs: address D-cache aliasing`
@ 2025-07-22 10:00 Gao Xiang
2025-07-22 10:00 ` [PATCH 6.1.y 1/5] erofs: get rid of debug_one_dentry() Gao Xiang
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Gao Xiang @ 2025-07-22 10:00 UTC (permalink / raw)
To: stable, Greg Kroah-Hartman, Jan Kiszka, Stefan Kerkmann
Cc: linux-erofs, LKML, Gao Xiang
6.6.y fix: https://lore.kernel.org/r/20250722094449.2950654-1-hsiangkao@linux.alibaba.com
Hi Jan & Stefan,
Please help confirm this 6.1 fix backport if possible too.
Thanks,
Gao Xiang
Gao Xiang (5):
erofs: get rid of debug_one_dentry()
erofs: sunset erofs_dbg()
erofs: drop z_erofs_page_mark_eio()
erofs: simplify z_erofs_transform_plain()
erofs: address D-cache aliasing
fs/erofs/decompressor.c | 23 +++++++----------
fs/erofs/dir.c | 17 -------------
fs/erofs/inode.c | 3 ---
fs/erofs/internal.h | 2 --
fs/erofs/namei.c | 9 +++----
fs/erofs/zdata.c | 56 +++++++++++++++++------------------------
fs/erofs/zmap.c | 3 ---
7 files changed, 35 insertions(+), 78 deletions(-)
--
2.43.5
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 6.1.y 1/5] erofs: get rid of debug_one_dentry()
2025-07-22 10:00 [PATCH 6.1.y 0/5] erofs: backport for `erofs: address D-cache aliasing` Gao Xiang
@ 2025-07-22 10:00 ` Gao Xiang
2025-07-23 4:34 ` Sasha Levin
2025-07-22 10:00 ` [PATCH 6.1.y 2/5] erofs: sunset erofs_dbg() Gao Xiang
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Gao Xiang @ 2025-07-22 10:00 UTC (permalink / raw)
To: stable, Greg Kroah-Hartman, Jan Kiszka, Stefan Kerkmann
Cc: linux-erofs, LKML, Gao Xiang, Yue Hu, Jingbo Xu, Chao Yu
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 <huyue2@coolpad.com>
Reviewed-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
---
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"
-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] = '\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;
}
- 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 += sizeof(struct erofs_dirent);
--
2.43.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 6.1.y 2/5] erofs: sunset erofs_dbg()
2025-07-22 10:00 [PATCH 6.1.y 0/5] erofs: backport for `erofs: address D-cache aliasing` Gao Xiang
2025-07-22 10:00 ` [PATCH 6.1.y 1/5] erofs: get rid of debug_one_dentry() Gao Xiang
@ 2025-07-22 10:00 ` Gao Xiang
2025-07-23 4:34 ` Sasha Levin
2025-07-22 10:00 ` [PATCH 6.1.y 3/5] erofs: drop z_erofs_page_mark_eio() Gao Xiang
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Gao Xiang @ 2025-07-22 10:00 UTC (permalink / raw)
To: stable, Greg Kroah-Hartman, Jan Kiszka, Stefan Kerkmann
Cc: linux-erofs, LKML, Gao Xiang, Chao Yu
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 <hsiangkao@linux.alibaba.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20230414083027.12307-1-hsiangkao@linux.alibaba.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 = erofs_blknr(sb, inode_loc);
*ofs = erofs_blkoff(sb, inode_loc);
- erofs_dbg("%s, reading inode nid %llu at %u of blkaddr %u",
- __func__, vi->nid, *ofs, blkaddr);
-
kaddr = 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 */
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,
err = erofs_namei(dir, &dentry->d_name, &nid, &d_type);
- if (err == -ENOENT) {
+ if (err == -ENOENT)
/* negative dentry */
inode = NULL;
- } else if (err) {
+ else if (err)
inode = ERR_PTR(err);
- } else {
- erofs_dbg("%s, %pd (nid %llu) found, d_type %u", __func__,
- dentry, nid, d_type);
+ else
inode = erofs_iget(dir->i_sb, nid);
- }
return d_splice_alias(inode, dentry);
}
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_decompress_frontend *fe,
if (offset + cur < map->m_la ||
offset + cur >= map->m_la + map->m_llen) {
- erofs_dbg("out-of-range map @ pos %llu", offset + cur);
-
if (z_erofs_collector_end(fe))
fe->backmost = false;
map->m_la = offset + cur;
@@ -935,9 +933,6 @@ static int z_erofs_do_read_page(struct z_erofs_decompress_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;
}
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,
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;
}
--
2.43.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 6.1.y 3/5] erofs: drop z_erofs_page_mark_eio()
2025-07-22 10:00 [PATCH 6.1.y 0/5] erofs: backport for `erofs: address D-cache aliasing` Gao Xiang
2025-07-22 10:00 ` [PATCH 6.1.y 1/5] erofs: get rid of debug_one_dentry() Gao Xiang
2025-07-22 10:00 ` [PATCH 6.1.y 2/5] erofs: sunset erofs_dbg() Gao Xiang
@ 2025-07-22 10:00 ` Gao Xiang
2025-07-23 4:34 ` Sasha Levin
2025-07-22 10:00 ` [PATCH 6.1.y 4/5] erofs: simplify z_erofs_transform_plain() Gao Xiang
2025-07-22 10:00 ` [PATCH 6.1.y 5/5] erofs: address D-cache aliasing Gao Xiang
4 siblings, 1 reply; 11+ messages in thread
From: Gao Xiang @ 2025-07-22 10:00 UTC (permalink / raw)
To: stable, Greg Kroah-Hartman, Jan Kiszka, Stefan Kerkmann
Cc: linux-erofs, LKML, Gao Xiang, Yue Hu, Chao Yu
commit 9a05c6a8bc26138d34e87b39e6a815603bc2a66c upstream.
It can be folded into z_erofs_onlinepage_endio() to simplify the code.
Reviewed-by: Yue Hu <huyue2@coolpad.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20230817082813.81180-5-hsiangkao@linux.alibaba.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 page *page)
atomic_inc((atomic_t *)&page->private);
}
-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));
do {
orig = atomic_read((atomic_t *)&page->private);
- } while (atomic_cmpxchg((atomic_t *)&page->private, orig,
- orig | Z_EROFS_PAGE_EIO) != orig);
-}
-
-static inline void z_erofs_onlinepage_endio(struct page *page)
-{
- unsigned int v;
+ v = (orig - 1) | (err ? Z_EROFS_PAGE_EIO : 0);
+ } while (atomic_cmpxchg((atomic_t *)&page->private, orig, v) != orig);
- DBG_BUGON(!PagePrivate(page));
- v = 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_decompress_frontend *fe,
goto repeat;
out:
- if (err)
- z_erofs_page_mark_eio(page);
- z_erofs_onlinepage_endio(page);
+ z_erofs_onlinepage_endio(page, err);
return err;
}
@@ -1035,9 +1028,7 @@ static void z_erofs_fill_other_copies(struct z_erofs_decompress_backend *be,
cur += 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);
}
if (be->decompressed_pages != be->onstack_pages)
--
2.43.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 6.1.y 4/5] erofs: simplify z_erofs_transform_plain()
2025-07-22 10:00 [PATCH 6.1.y 0/5] erofs: backport for `erofs: address D-cache aliasing` Gao Xiang
` (2 preceding siblings ...)
2025-07-22 10:00 ` [PATCH 6.1.y 3/5] erofs: drop z_erofs_page_mark_eio() Gao Xiang
@ 2025-07-22 10:00 ` Gao Xiang
2025-07-23 4:34 ` Sasha Levin
2025-07-22 10:00 ` [PATCH 6.1.y 5/5] erofs: address D-cache aliasing Gao Xiang
4 siblings, 1 reply; 11+ messages in thread
From: Gao Xiang @ 2025-07-22 10:00 UTC (permalink / raw)
To: stable, Greg Kroah-Hartman, Jan Kiszka, Stefan Kerkmann
Cc: linux-erofs, LKML, Gao Xiang, Yue Hu, Chao Yu
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 <hsiangkao@linux.alibaba.com>
Reviewed-by: Yue Hu <huyue2@coolpad.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20230627161240.331-2-hsiangkao@linux.alibaba.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
---
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_decompress_req *rq,
const unsigned int lefthalf = rq->outputsize - righthalf;
const unsigned int interlaced_offset =
rq->alg == Z_EROFS_COMPRESSION_SHIFTED ? 0 : rq->pageofs_out;
- unsigned char *src, *dst;
+ u8 *src;
if (outpages > 2 && rq->alg == Z_EROFS_COMPRESSION_SHIFTED) {
DBG_BUGON(1);
@@ -336,22 +336,19 @@ static int z_erofs_transform_plain(struct z_erofs_decompress_req *rq,
}
src = kmap_local_page(rq->in[inpages - 1]) + rq->pageofs_in;
- if (rq->out[0]) {
- dst = 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);
if (outpages > inpages) {
DBG_BUGON(!rq->out[outpages - 1]);
if (rq->out[outpages - 1] != rq->in[inpages - 1]) {
- dst = 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);
--
2.43.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 6.1.y 5/5] erofs: address D-cache aliasing
2025-07-22 10:00 [PATCH 6.1.y 0/5] erofs: backport for `erofs: address D-cache aliasing` Gao Xiang
` (3 preceding siblings ...)
2025-07-22 10:00 ` [PATCH 6.1.y 4/5] erofs: simplify z_erofs_transform_plain() Gao Xiang
@ 2025-07-22 10:00 ` Gao Xiang
2025-07-23 4:34 ` Sasha Levin
4 siblings, 1 reply; 11+ messages in thread
From: Gao Xiang @ 2025-07-22 10:00 UTC (permalink / raw)
To: stable, Greg Kroah-Hartman, Jan Kiszka, Stefan Kerkmann
Cc: linux-erofs, LKML, Gao Xiang
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@pengutronix.de
Closes: https://lore.kernel.org/r/38d43fae-1182-4155-9c5b-ffc7382d9917@siemens.com
Tested-by: Jan Kiszka <jan.kiszka@siemens.com>
Tested-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
Link: https://lore.kernel.org/r/20250709034614.2780117-2-hsiangkao@linux.alibaba.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
---
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_decompress_req *rq,
if (outpages > inpages) {
DBG_BUGON(!rq->out[outpages - 1]);
- if (rq->out[outpages - 1] != rq->in[inpages - 1]) {
+ if (rq->out[outpages - 1] != 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(struct z_erofs_pcluster *pcl)
/*
* 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
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);
}
-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;
@@ -152,16 +154,20 @@ static void z_erofs_onlinepage_endio(struct page *page, int err)
do {
orig = atomic_read((atomic_t *)&page->private);
- v = (orig - 1) | (err ? Z_EROFS_PAGE_EIO : 0);
+ DBG_BUGON(orig <= 0);
+ v = dirty << Z_EROFS_ONLINEPAGE_DIRTY;
+ v |= (orig - 1) | (!!err << Z_EROFS_ONLINEPAGE_EIO);
} while (atomic_cmpxchg((atomic_t *)&page->private, orig, v) != orig);
- 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);
}
#define Z_EROFS_ONSTACK_PAGES 32
@@ -925,7 +931,7 @@ static int z_erofs_do_read_page(struct z_erofs_decompress_frontend *fe,
goto repeat;
out:
- z_erofs_onlinepage_endio(page, err);
+ z_erofs_onlinepage_end(page, err, false);
return err;
}
@@ -1028,7 +1034,7 @@ static void z_erofs_fill_other_copies(struct z_erofs_decompress_backend *be,
cur += 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);
}
if (be->decompressed_pages != be->onstack_pages)
--
2.43.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 6.1.y 1/5] erofs: get rid of debug_one_dentry()
2025-07-22 10:00 ` [PATCH 6.1.y 1/5] erofs: get rid of debug_one_dentry() Gao Xiang
@ 2025-07-23 4:34 ` Sasha Levin
0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2025-07-23 4:34 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: e324eaa9790614577c93e819651e0a83963dac79
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
Note: The patch differs from the upstream commit:
---
1: e324eaa97906 ! 1: b7f6cd7d3810 erofs: get rid of debug_one_dentry()
@@ Metadata
## Commit message ##
erofs: get rid of debug_one_dentry()
+ commit e324eaa9790614577c93e819651e0a83963dac79 upstream.
+
Since erofsdump is available, no need to keep this debugging
functionality at all.
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.1 | Success | Success |
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 6.1.y 2/5] erofs: sunset erofs_dbg()
2025-07-22 10:00 ` [PATCH 6.1.y 2/5] erofs: sunset erofs_dbg() Gao Xiang
@ 2025-07-23 4:34 ` Sasha Levin
0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2025-07-23 4:34 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 10656f9ca60ed85f4cfc06bcbe1f240ee310fa8c
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
Note: The patch differs from the upstream commit:
---
1: 10656f9ca60e ! 1: 490c3ffa300c erofs: sunset erofs_dbg()
@@ Metadata
## Commit message ##
erofs: sunset erofs_dbg()
+ 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.
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.1 | Success | Success |
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 6.1.y 3/5] erofs: drop z_erofs_page_mark_eio()
2025-07-22 10:00 ` [PATCH 6.1.y 3/5] erofs: drop z_erofs_page_mark_eio() Gao Xiang
@ 2025-07-23 4:34 ` Sasha Levin
0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2025-07-23 4:34 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 9a05c6a8bc26138d34e87b39e6a815603bc2a66c
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
Note: Could not generate a diff with upstream commit:
---
Note: Could not generate diff - patch failed to apply for comparison
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.1 | Success | Success |
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 6.1.y 4/5] erofs: simplify z_erofs_transform_plain()
2025-07-22 10:00 ` [PATCH 6.1.y 4/5] erofs: simplify z_erofs_transform_plain() Gao Xiang
@ 2025-07-23 4:34 ` Sasha Levin
0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2025-07-23 4:34 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: c5539762f32e97c5e16215fa1336e32095b8b0fd
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
Note: The patch differs from the upstream commit:
---
1: c5539762f32e ! 1: a606c7746417 erofs: simplify z_erofs_transform_plain()
@@ Metadata
## Commit message ##
erofs: simplify z_erofs_transform_plain()
+ commit c5539762f32e97c5e16215fa1336e32095b8b0fd upstream.
+
Use memcpy_to_page() instead of open-coding them.
In addition, add a missing flush_dcache_page() even though almost all
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.1 | Success | Success |
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 6.1.y 5/5] erofs: address D-cache aliasing
2025-07-22 10:00 ` [PATCH 6.1.y 5/5] erofs: address D-cache aliasing Gao Xiang
@ 2025-07-23 4:34 ` Sasha Levin
0 siblings, 0 replies; 11+ messages in thread
From: Sasha Levin @ 2025-07-23 4:34 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 27917e8194f91dffd8b4825350c63cb68e98ce58
Status in newer kernel trees:
6.15.y | Not found
6.12.y | Not found
6.6.y | Not found
Note: Could not generate a diff with upstream commit:
---
Note: Could not generate diff - patch failed to apply for comparison
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.1 | Success | Success |
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-07-23 4:34 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-22 10:00 [PATCH 6.1.y 0/5] erofs: backport for `erofs: address D-cache aliasing` Gao Xiang
2025-07-22 10:00 ` [PATCH 6.1.y 1/5] erofs: get rid of debug_one_dentry() Gao Xiang
2025-07-23 4:34 ` Sasha Levin
2025-07-22 10:00 ` [PATCH 6.1.y 2/5] erofs: sunset erofs_dbg() Gao Xiang
2025-07-23 4:34 ` Sasha Levin
2025-07-22 10:00 ` [PATCH 6.1.y 3/5] erofs: drop z_erofs_page_mark_eio() Gao Xiang
2025-07-23 4:34 ` Sasha Levin
2025-07-22 10:00 ` [PATCH 6.1.y 4/5] erofs: simplify z_erofs_transform_plain() Gao Xiang
2025-07-23 4:34 ` Sasha Levin
2025-07-22 10:00 ` [PATCH 6.1.y 5/5] erofs: address D-cache aliasing Gao Xiang
2025-07-23 4:34 ` Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).