Re: [PATCH] gfs2, udf: update to use mmap_prepare

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 2, 2025 at 1:53 PM Lorenzo Stoakes
<lorenzo.stoakes@xxxxxxxxxx> wrote:
> The f_op->mmap() callback is deprecated, and we are in the process of
> slowly converting users to f_op->mmap_prepare().
>
> While some filesystems require additional work to be done before they can
> be converted, the gfs2 and udf filesystems (like most) are simple and can
> simply be replaced right away.
>
> This patch adapts them to do so.
>
> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>
> ---
>  fs/gfs2/file.c | 12 ++++++------
>  fs/udf/file.c  |  8 +++++---
>  2 files changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
> index bc67fa058c84..c28ff8786238 100644
> --- a/fs/gfs2/file.c
> +++ b/fs/gfs2/file.c
> @@ -577,7 +577,7 @@ static const struct vm_operations_struct gfs2_vm_ops = {
>  };
>
>  /**
> - * gfs2_mmap
> + * gfs2_mmap_prepare
>   * @file: The file to map
>   * @vma: The VMA which described the mapping
>   *
> @@ -588,8 +588,9 @@ static const struct vm_operations_struct gfs2_vm_ops = {
>   * Returns: 0
>   */
>
> -static int gfs2_mmap(struct file *file, struct vm_area_struct *vma)
> +static int gfs2_mmap_prepare(struct vm_area_desc *desc)
>  {
> +       struct file *file = desc->file;
>         struct gfs2_inode *ip = GFS2_I(file->f_mapping->host);
>
>         if (!(file->f_flags & O_NOATIME) &&
> @@ -605,7 +606,7 @@ static int gfs2_mmap(struct file *file, struct vm_area_struct *vma)
>                 gfs2_glock_dq_uninit(&i_gh);
>                 file_accessed(file);
>         }
> -       vma->vm_ops = &gfs2_vm_ops;
> +       desc->vm_ops = &gfs2_vm_ops;
>
>         return 0;
>  }
> @@ -1585,7 +1586,7 @@ const struct file_operations gfs2_file_fops = {
>         .iopoll         = iocb_bio_iopoll,
>         .unlocked_ioctl = gfs2_ioctl,
>         .compat_ioctl   = gfs2_compat_ioctl,
> -       .mmap           = gfs2_mmap,
> +       .mmap_prepare   = gfs2_mmap,

This ought to be:
  .mmap_prepare = gfs2_mmap_prepare,

>         .open           = gfs2_open,
>         .release        = gfs2_release,
>         .fsync          = gfs2_fsync,
> @@ -1620,7 +1621,7 @@ const struct file_operations gfs2_file_fops_nolock = {
>         .iopoll         = iocb_bio_iopoll,
>         .unlocked_ioctl = gfs2_ioctl,
>         .compat_ioctl   = gfs2_compat_ioctl,
> -       .mmap           = gfs2_mmap,
> +       .mmap_prepare   = gfs2_mmap_prepare,
>         .open           = gfs2_open,
>         .release        = gfs2_release,
>         .fsync          = gfs2_fsync,
> @@ -1639,4 +1640,3 @@ const struct file_operations gfs2_dir_fops_nolock = {
>         .fsync          = gfs2_fsync,
>         .llseek         = default_llseek,
>  };
> -
> diff --git a/fs/udf/file.c b/fs/udf/file.c
> index 0d76c4f37b3e..fbb2d6ba8ca2 100644
> --- a/fs/udf/file.c
> +++ b/fs/udf/file.c
> @@ -189,10 +189,12 @@ static int udf_release_file(struct inode *inode, struct file *filp)
>         return 0;
>  }
>
> -static int udf_file_mmap(struct file *file, struct vm_area_struct *vma)
> +static int udf_file_mmap_prepare(struct vm_area_desc *desc)
>  {
> +       struct file *file = desc->file;
> +
>         file_accessed(file);
> -       vma->vm_ops = &udf_file_vm_ops;
> +       desc->vm_ops = &udf_file_vm_ops;
>
>         return 0;
>  }
> @@ -201,7 +203,7 @@ const struct file_operations udf_file_operations = {
>         .read_iter              = generic_file_read_iter,
>         .unlocked_ioctl         = udf_ioctl,
>         .open                   = generic_file_open,
> -       .mmap                   = udf_file_mmap,
> +       .mmap_prepare           = udf_file_mmap_prepare,
>         .write_iter             = udf_file_write_iter,
>         .release                = udf_release_file,
>         .fsync                  = generic_file_fsync,
> --
> 2.50.1
>

Thanks,
Andreas






[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux