mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-19 14:47:06 -05:00
xfs: add pre-content fsnotify hook for DAX faults
xfs has it's own handling for DAX faults, so we need to add the pre-content fsnotify hook for this case. Other faults go through filemap_fault so they're handled properly there. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Jan Kara <jack@suse.cz> Link: https://patch.msgid.link/9eccdf59a65b72f0a1a5e2f2b9bff8eda2d4f2d9.1731684329.git.josef@toxicpanda.com
This commit is contained in:
@@ -1443,6 +1443,9 @@ xfs_dax_read_fault(
|
||||
|
||||
trace_xfs_read_fault(ip, order);
|
||||
|
||||
ret = filemap_fsnotify_fault(vmf);
|
||||
if (unlikely(ret))
|
||||
return ret;
|
||||
xfs_ilock(ip, XFS_MMAPLOCK_SHARED);
|
||||
ret = xfs_dax_fault_locked(vmf, order, false);
|
||||
xfs_iunlock(ip, XFS_MMAPLOCK_SHARED);
|
||||
@@ -1471,6 +1474,16 @@ xfs_write_fault(
|
||||
vm_fault_t ret;
|
||||
|
||||
trace_xfs_write_fault(ip, order);
|
||||
/*
|
||||
* Usually we get here from ->page_mkwrite callback but in case of DAX
|
||||
* we will get here also for ordinary write fault. Handle HSM
|
||||
* notifications for that case.
|
||||
*/
|
||||
if (IS_DAX(inode)) {
|
||||
ret = filemap_fsnotify_fault(vmf);
|
||||
if (unlikely(ret))
|
||||
return ret;
|
||||
}
|
||||
|
||||
sb_start_pagefault(inode->i_sb);
|
||||
file_update_time(vmf->vma->vm_file);
|
||||
|
||||
Reference in New Issue
Block a user