Re: [PATCH RFC 04/14] fs/crypto: stop setting PG_private on bounce page

Usama Arif <[email protected]> Sat, 1 Aug 2026 07:52:07 -0700
Newsgroups org.kernel.vger.linux-fscrypt,org.kernel.vger.linux-kernel,org.kvack.linux-mm
Message-ID <[email protected]>
On Fri, 31 Jul 2026 22:13:27 -0400 Zi Yan <[email protected]> wrote:

> The point to a plaintext folio is stored in page->private and cannot be
> NULL, making PG_private redundant.

s/point to/pointer to/


And fscrypt_free_bounce_page() NULLs it, so that needs to be corrected.

 
> It prepares for a future commit that remove PG_private.
> 
> No funtional change intended.
> 
> Assisted-by: Claude:claude-opus-4-8
> Assisted-by: Codex:gpt-5
> Signed-off-by: Zi Yan <[email protected]>
> To: Eric Biggers <[email protected]>
> To: "Theodore Y. Ts'o" <[email protected]>
> To: Jaegeuk Kim <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> ---
>  fs/crypto/crypto.c | 2 --
>  1 file changed, 2 deletions(-)

Nothing in fscrypt or its users tests PG_private on a bounce page, so
this looks right to me. The commit message needs to be corrected but code
looks correct.

Feel free to add:

Acked-by: Usama Arif <[email protected]>


> 
> diff --git a/fs/crypto/crypto.c b/fs/crypto/crypto.c
> index 570a2231c945a..c8a98dd94650f 100644
> --- a/fs/crypto/crypto.c
> +++ b/fs/crypto/crypto.c
> @@ -73,7 +73,6 @@ void fscrypt_free_bounce_page(struct page *bounce_page)
>  	if (!bounce_page)
>  		return;
>  	set_page_private(bounce_page, (unsigned long)NULL);
> -	ClearPagePrivate(bounce_page);
>  	mempool_free(bounce_page, fscrypt_bounce_page_pool);
>  }
>  EXPORT_SYMBOL(fscrypt_free_bounce_page);
> @@ -202,7 +201,6 @@ struct page *fscrypt_encrypt_pagecache_blocks(struct folio *folio,
>  			return ERR_PTR(err);
>  		}
>  	}
> -	SetPagePrivate(ciphertext_page);
>  	set_page_private(ciphertext_page, (unsigned long)folio);
>  	return ciphertext_page;
>  }
> 
> -- 
> 2.53.0
> 
>