On Tue, Apr 26, 2022 at 10:43:27AM -0700, Stefan Roesch wrote: > This modifies xfs write checks to return -EAGAIN if the request either > requires to remove privileges or needs to update the file modification > time. This is required for async buffered writes, so the request gets > handled in the io worker. > > Signed-off-by: Stefan Roesch <shr@xxxxxx> > --- > fs/xfs/xfs_file.c | 39 ++++++++++++++++++++++++++++++++++++++- > 1 file changed, 38 insertions(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c > index 5bddb1e9e0b3..6f9da1059e8b 100644 > --- a/fs/xfs/xfs_file.c > +++ b/fs/xfs/xfs_file.c > @@ -299,6 +299,43 @@ xfs_file_read_iter( > return ret; > } > > +static int xfs_file_modified(struct file *file, int flags) This should probably be in fs/inode.c as: int file_modified_async(struct file *file, int flags) and then file_modified() can simply become: int file_modified(struct file *file) { return file_modified_async(file, 0); } or even: int file_modified_async(struct file *file, bool async) int file_modified(struct file *file) { return file_modified_async(file, false); } to avoid piecing this together specifically in xfs (as Dave mentioned this is all pretty generic).