mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	mm: Define MAP_SYNC and VM_SYNC flags
Define new MAP_SYNC flag and corresponding VMA VM_SYNC flag. As the MAP_SYNC flag is not part of LEGACY_MAP_MASK, currently it will be refused by all MAP_SHARED_VALIDATE map attempts and silently ignored for everything else. Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
		
							parent
							
								
									f5b7b74876
								
							
						
					
					
						commit
						b6fb293f24
					
				
					 4 changed files with 9 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -664,6 +664,7 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
 | 
			
		|||
		[ilog2(VM_ACCOUNT)]	= "ac",
 | 
			
		||||
		[ilog2(VM_NORESERVE)]	= "nr",
 | 
			
		||||
		[ilog2(VM_HUGETLB)]	= "ht",
 | 
			
		||||
		[ilog2(VM_SYNC)]	= "sf",
 | 
			
		||||
		[ilog2(VM_ARCH_1)]	= "ar",
 | 
			
		||||
		[ilog2(VM_WIPEONFORK)]	= "wf",
 | 
			
		||||
		[ilog2(VM_DONTDUMP)]	= "dd",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -189,6 +189,7 @@ extern unsigned int kobjsize(const void *objp);
 | 
			
		|||
#define VM_ACCOUNT	0x00100000	/* Is a VM accounted object */
 | 
			
		||||
#define VM_NORESERVE	0x00200000	/* should the VM suppress accounting */
 | 
			
		||||
#define VM_HUGETLB	0x00400000	/* Huge TLB Page VM */
 | 
			
		||||
#define VM_SYNC		0x00800000	/* Synchronous page faults */
 | 
			
		||||
#define VM_ARCH_1	0x01000000	/* Architecture-specific flag */
 | 
			
		||||
#define VM_WIPEONFORK	0x02000000	/* Wipe VMA contents in child. */
 | 
			
		||||
#define VM_DONTDUMP	0x04000000	/* Do not include in the core dump */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@
 | 
			
		|||
 | 
			
		||||
/*
 | 
			
		||||
 * Arrange for legacy / undefined architecture specific flags to be
 | 
			
		||||
 * ignored by default in LEGACY_MAP_MASK.
 | 
			
		||||
 * ignored by mmap handling code.
 | 
			
		||||
 */
 | 
			
		||||
#ifndef MAP_32BIT
 | 
			
		||||
#define MAP_32BIT 0
 | 
			
		||||
| 
						 | 
				
			
			@ -23,6 +23,9 @@
 | 
			
		|||
#ifndef MAP_UNINITIALIZED
 | 
			
		||||
#define MAP_UNINITIALIZED 0
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef MAP_SYNC
 | 
			
		||||
#define MAP_SYNC 0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * The historical set of flags that all mmap implementations implicitly
 | 
			
		||||
| 
						 | 
				
			
			@ -126,7 +129,8 @@ calc_vm_flag_bits(unsigned long flags)
 | 
			
		|||
{
 | 
			
		||||
	return _calc_vm_trans(flags, MAP_GROWSDOWN,  VM_GROWSDOWN ) |
 | 
			
		||||
	       _calc_vm_trans(flags, MAP_DENYWRITE,  VM_DENYWRITE ) |
 | 
			
		||||
	       _calc_vm_trans(flags, MAP_LOCKED,     VM_LOCKED    );
 | 
			
		||||
	       _calc_vm_trans(flags, MAP_LOCKED,     VM_LOCKED    ) |
 | 
			
		||||
	       _calc_vm_trans(flags, MAP_SYNC,	     VM_SYNC      );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned long vm_commit_limit(void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@
 | 
			
		|||
#define MAP_NONBLOCK	0x10000		/* do not block on IO */
 | 
			
		||||
#define MAP_STACK	0x20000		/* give out an address that is best suited for process/thread stacks */
 | 
			
		||||
#define MAP_HUGETLB	0x40000		/* create a huge page mapping */
 | 
			
		||||
#define MAP_SYNC	0x80000		/* perform synchronous page faults for the mapping */
 | 
			
		||||
 | 
			
		||||
/* Bits [26:31] are reserved, see mman-common.h for MAP_HUGETLB usage */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue