Skip to content

Commit

Permalink
xfs: add pre-content fsnotify hook for DAX faults
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Josef Bacik authored and Jan Kara committed Dec 11, 2024
1 parent 8392bc2 commit 7f4796a
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions fs/xfs/xfs_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 7f4796a

Please sign in to comment.