[PATCH v1 01/11] relay: zero page->private when freeing pages
Zi Yan
ziy at nvidia.com
Mon Feb 23 14:26:31 AEDT 2026
This prepares for upcoming page->private checks in page freeing path.
Signed-off-by: Zi Yan <ziy at nvidia.com>
Cc: Jason Xing <kernelxing at tencent.com>
Cc: Yushan Zhou <katrinzhou at tencent.com>
Cc: "Masami Hiramatsu (Google)" <mhiramat at kernel.org>
---
kernel/relay.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/kernel/relay.c b/kernel/relay.c
index 5c665b729132..d16f9966817f 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -131,8 +131,10 @@ static void *relay_alloc_buf(struct rchan_buf *buf, size_t *size)
return mem;
depopulate:
- for (j = 0; j < i; j++)
+ for (j = 0; j < i; j++) {
+ set_page_private(buf->page_array[i], 0);
__free_page(buf->page_array[j]);
+ }
relay_free_page_array(buf->page_array);
return NULL;
}
@@ -196,8 +198,10 @@ static void relay_destroy_buf(struct rchan_buf *buf)
if (likely(buf->start)) {
vunmap(buf->start);
- for (i = 0; i < buf->page_count; i++)
+ for (i = 0; i < buf->page_count; i++) {
+ set_page_private(buf->page_array[i], 0);
__free_page(buf->page_array[i]);
+ }
relay_free_page_array(buf->page_array);
}
*per_cpu_ptr(chan->buf, buf->cpu) = NULL;
--
2.51.0
More information about the Linux-erofs
mailing list