mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	ext4: disable map_sync for async flush
Dont support 'MAP_SYNC' with non-DAX files and DAX files with asynchronous dax_device. Virtio pmem provides asynchronous host page cache flush mechanism. We don't support 'MAP_SYNC' with virtio pmem and ext4. Signed-off-by: Pankaj Gupta <pagupta@redhat.com> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
		
							parent
							
								
									32de148464
								
							
						
					
					
						commit
						e46bfc3f03
					
				
					 1 changed files with 6 additions and 4 deletions
				
			
		|  | @ -367,15 +367,17 @@ static const struct vm_operations_struct ext4_file_vm_ops = { | |||
| static int ext4_file_mmap(struct file *file, struct vm_area_struct *vma) | ||||
| { | ||||
| 	struct inode *inode = file->f_mapping->host; | ||||
| 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); | ||||
| 	struct dax_device *dax_dev = sbi->s_daxdev; | ||||
| 
 | ||||
| 	if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) | ||||
| 	if (unlikely(ext4_forced_shutdown(sbi))) | ||||
| 		return -EIO; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * We don't support synchronous mappings for non-DAX files. At least | ||||
| 	 * until someone comes with a sensible use case. | ||||
| 	 * We don't support synchronous mappings for non-DAX files and | ||||
| 	 * for DAX files if underneath dax_device is not synchronous. | ||||
| 	 */ | ||||
| 	if (!IS_DAX(file_inode(file)) && (vma->vm_flags & VM_SYNC)) | ||||
| 	if (!daxdev_mapping_supported(vma, dax_dev)) | ||||
| 		return -EOPNOTSUPP; | ||||
| 
 | ||||
| 	file_accessed(file); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Pankaj Gupta
						Pankaj Gupta