mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-15 02:57:49 +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)
|
static int ext4_file_mmap(struct file *file, struct vm_area_struct *vma)
|
||||||
{
|
{
|
||||||
struct inode *inode = file->f_mapping->host;
|
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;
|
return -EIO;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We don't support synchronous mappings for non-DAX files. At least
|
* We don't support synchronous mappings for non-DAX files and
|
||||||
* until someone comes with a sensible use case.
|
* 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;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
file_accessed(file);
|
file_accessed(file);
|
||||||
|
|
Loading…
Add table
Reference in a new issue