lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHc6FU4=L+PU5i6j3cH2KjA+PtvBk-56=CaWN3+yHqHrGX=VrQ@mail.gmail.com>
Date: Tue, 2 Sep 2025 14:34:15 +0200
From: Andreas Gruenbacher <agruenba@...hat.com>
To: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
Cc: Christian Brauner <christian@...uner.io>, Jan Kara <jack@...e.com>, gfs2@...ts.linux.dev, 
	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] gfs2, udf: update to use mmap_prepare

On Tue, Sep 2, 2025 at 1:53 PM Lorenzo Stoakes
<lorenzo.stoakes@...cle.com> 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@...cle.com>
> ---
>  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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ