Re: [PATCH 03/15] mm: document vm_operations_struct->open the same as close()

Lorenzo Stoakes (Oracle)
2026-03-16T14:31:32Z

On Sun, Mar 15, 2026 at 05:43:41PM -0700, Suren Baghdasaryan wrote:
> On Thu, Mar 12, 2026 at 1:27 PM Lorenzo Stoakes (Oracle) <ljs@kernel.org> wrote:
> >
> > Describe when the operation is invoked and the context in which it is
> > invoked, matching the description already added for vm_op->close().
> >
> > While we're here, update all outdated references to an 'area' field for
> > VMAs to the more consistent 'vma'.
> >
> > Signed-off-by: Lorenzo Stoakes (Oracle) <ljs@kernel.org>
> > ---
> > include/linux/mm.h | 15 ++++++++++-----
> > 1 file changed, 10 insertions(+), 5 deletions(-)
> >
> > diff --git a/include/linux/mm.h b/include/linux/mm.h
> > index cc5960a84382..12a0b4c63736 100644
> > --- a/include/linux/mm.h
> > +++ b/include/linux/mm.h
> > @@ -748,15 +748,20 @@ struct vm_uffd_ops;
> > * to the functions called when a no-page or a wp-page exception occurs.
> > */
> > struct vm_operations_struct {
> > - void (*open)(struct vm_area_struct * area);
> > + /**
> > + * @open: Called when a VMA is remapped or split. Not called upon first
> > + * mapping a VMA.
>
> It's also called from dup_mmap() which is part of forking.

Ah yup :) will update thanks!

>
> > + * Context: User context. May sleep. Caller holds mmap_lock.
> > + */
> > + void (*open)(struct vm_area_struct *vma);
> > /**
> > * @close: Called when the VMA is being removed from the MM.
> > * Context: User context. May sleep. Caller holds mmap_lock.
> > */
> > - void (*close)(struct vm_area_struct * area);
> > + void (*close)(struct vm_area_struct *vma);
> > /* Called any time before splitting to check if it's allowed */
> > - int (*may_split)(struct vm_area_struct *area, unsigned long addr);
> > - int (*mremap)(struct vm_area_struct *area);
> > + int (*may_split)(struct vm_area_struct *vma, unsigned long addr);
> > + int (*mremap)(struct vm_area_struct *vma);
> > /*
> > * Called by mprotect() to make driver-specific permission
> > * checks before mprotect() is finalised. The VMA must not
> > @@ -768,7 +773,7 @@ struct vm_operations_struct {
> > vm_fault_t (*huge_fault)(struct vm_fault *vmf, unsigned int order);
> > vm_fault_t (*map_pages)(struct vm_fault *vmf,
> > pgoff_t start_pgoff, pgoff_t end_pgoff);
> > - unsigned long (*pagesize)(struct vm_area_struct * area);
> > + unsigned long (*pagesize)(struct vm_area_struct *vma);
> >
> > /* notification that a previously read-only page is about to become
> > * writable, if an error is returned it will cause a SIGBUS */
> > --
> > 2.53.0
> >

Cheers, Lorenzo