Re: [PATCH 01/16] mm/shmem: update shmem to use mmap_prepare

Baolin Wang
2025-09-09T03:19:23Z

On 2025/9/8 19:10, Lorenzo Stoakes wrote:
> This simply assigns the vm_ops so is easily updated - do so.
>
> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> ---

LGTM.
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>

> mm/shmem.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 29e1eb690125..cfc33b99a23a 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -2950,16 +2950,17 @@ int shmem_lock(struct file *file, int lock, struct ucounts *ucounts)
> return retval;
> }
>
> -static int shmem_mmap(struct file *file, struct vm_area_struct *vma)
> +static int shmem_mmap_prepare(struct vm_area_desc *desc)
> {
> + struct file *file = desc->file;
> struct inode *inode = file_inode(file);
>
> file_accessed(file);
> /* This is anonymous shared memory if it is unlinked at the time of mmap */
> if (inode->i_nlink)
> - vma->vm_ops = &shmem_vm_ops;
> + desc->vm_ops = &shmem_vm_ops;
> else
> - vma->vm_ops = &shmem_anon_vm_ops;
> + desc->vm_ops = &shmem_anon_vm_ops;
> return 0;
> }
>
> @@ -5229,7 +5230,7 @@ static const struct address_space_operations shmem_aops = {
> };
>
> static const struct file_operations shmem_file_operations = {
> - .mmap = shmem_mmap,
> + .mmap_prepare = shmem_mmap_prepare,
> .open = shmem_file_open,
> .get_unmapped_area = shmem_get_unmapped_area,
> #ifdef CONFIG_TMPFS