On Mon, Jun 12, 2023 at 07:34:46AM +0200, Christoph Hellwig wrote: > Since commit a2ad63daa88b ("VFS: add FMODE_CAN_ODIRECT file flag") file > systems can just set the FMODE_CAN_ODIRECT flag at open time instead of > wiring up a dummy direct_IO method to indicate support for direct I/O. > Do that for xfs so that noop_direct_IO can eventually be removed. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/xfs/xfs_aops.c | 2 -- > fs/xfs/xfs_file.c | 2 +- > 2 files changed, 1 insertion(+), 3 deletions(-) > > diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c > index 2ef78aa1d3f608..451942fb38ec21 100644 > --- a/fs/xfs/xfs_aops.c > +++ b/fs/xfs/xfs_aops.c > @@ -582,7 +582,6 @@ const struct address_space_operations xfs_address_space_operations = { > .release_folio = iomap_release_folio, > .invalidate_folio = iomap_invalidate_folio, > .bmap = xfs_vm_bmap, > - .direct_IO = noop_direct_IO, > .migrate_folio = filemap_migrate_folio, > .is_partially_uptodate = iomap_is_partially_uptodate, > .error_remove_page = generic_error_remove_page, > @@ -591,7 +590,6 @@ const struct address_space_operations xfs_address_space_operations = { > > const struct address_space_operations xfs_dax_aops = { > .writepages = xfs_dax_writepages, > - .direct_IO = noop_direct_IO, > .dirty_folio = noop_dirty_folio, > .swap_activate = xfs_iomap_swapfile_activate, > }; > diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c > index aede746541f8ae..605587fefbd3c5 100644 > --- a/fs/xfs/xfs_file.c > +++ b/fs/xfs/xfs_file.c > @@ -1172,7 +1172,7 @@ xfs_file_open( > if (xfs_is_shutdown(XFS_M(inode->i_sb))) > return -EIO; > file->f_mode |= FMODE_NOWAIT | FMODE_BUF_RASYNC | FMODE_BUF_WASYNC | > - FMODE_DIO_PARALLEL_WRITE; > + FMODE_DIO_PARALLEL_WRITE | FMODE_CAN_ODIRECT; > return generic_file_open(inode, file); > } Looks OK. Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> -- Dave Chinner david@xxxxxxxxxxxxx