Re: [PATCH v3 2/7] mm: introduce vma->vm_flags wrapper functions

From: Andrew Morton
Date: Wed Jan 25 2023 - 19:28:34 EST


On Wed, 25 Jan 2023 15:35:49 -0800 Suren Baghdasaryan <surenb@xxxxxxxxxx> wrote:

> --- a/include/linux/mm_types.h
> +++ b/include/linux/mm_types.h
> @@ -491,7 +491,15 @@ struct vm_area_struct {
> * See vmf_insert_mixed_prot() for discussion.
> */
> pgprot_t vm_page_prot;
> - unsigned long vm_flags; /* Flags, see mm.h. */
> +
> + /*
> + * Flags, see mm.h.
> + * To modify use {init|reset|set|clear|mod}_vm_flags() functions.
> + */
> + union {
> + const vm_flags_t vm_flags;
> + vm_flags_t __private __vm_flags;
> + };

Typically when making a change like this we'll rename the affected
field/variable/function/etc. This will reliably and deliberately break
unconverted usage sites.

This const trick will get us partway there, by breaking setters. But
renaming it will break both setters and getters.