// SPDX-License-Identifier: GPL-2.0/* * linux/mm/madvise.c * * Copyright (C) 1999 Linus Torvalds * Copyright (C) 2002 Christoph Hellwig */#include<linux/mman.h>#include<linux/pagemap.h>#include<linux/syscalls.h>#include<linux/mempolicy.h>#include<linux/page-isolation.h>#include<linux/page_idle.h>#include<linux/userfaultfd_k.h>#include<linux/hugetlb.h>#include<linux/falloc.h>#include<linux/fadvise.h>#include<linux/sched.h>#include<linux/sched/mm.h>#include<linux/mm_inline.h>#include<linux/string.h>#include<linux/uio.h>#include<linux/ksm.h>#include<linux/fs.h>#include<linux/file.h>#include<linux/blkdev.h>#include<linux/backing-dev.h>#include<linux/pagewalk.h>#include<linux/swap.h>#include<linux/swapops.h>#include<linux/shmem_fs.h>#include<linux/mmu_notifier.h>#include<asm/tlb.h>#include"internal.h"#include"swap.h"structmadvise_walk_private{structmmu_gather*tlb;boolpageout;};/* * Any behaviour which results in changes to the vma->vm_flags needs to * take mmap_lock for writing.