On Mon, Feb 05, 2024 at 10:26:43AM +0000, John Garry wrote: > On 02/02/2024 18:06, Darrick J. Wong wrote: > > On Wed, Jan 24, 2024 at 02:26:45PM +0000, John Garry wrote: > > > For when an inode is enabled for atomic writes, set FMODE_CAN_ATOMIC_WRITE > > > flag. > > > > > > Signed-off-by: John Garry <john.g.garry@xxxxxxxxxx> > > > --- > > > fs/xfs/xfs_file.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c > > > index e33e5e13b95f..1375d0089806 100644 > > > --- a/fs/xfs/xfs_file.c > > > +++ b/fs/xfs/xfs_file.c > > > @@ -1232,6 +1232,8 @@ xfs_file_open( > > > return -EIO; > > > file->f_mode |= FMODE_NOWAIT | FMODE_BUF_RASYNC | FMODE_BUF_WASYNC | > > > FMODE_DIO_PARALLEL_WRITE | FMODE_CAN_ODIRECT; > > > + if (xfs_inode_atomicwrites(XFS_I(inode))) > > Note to self: This should also check if O_DIRECT is set > > > > > Shouldn't we check that the device supports AWU at all before turning on > > the FMODE flag? > > Can we easily get this sort of bdev info here? > > Currently if we do try to issue an atomic write and AWU for the bdev is > zero, then XFS iomap code will reject it. Hmm. Well, if we move towards pushing all the hardware checks out of xfs/iomap and into whatever goes on underneath submit_bio then I guess we don't need to check device support here at all. --D > Thanks, > John > > > > > --D > > > > > + file->f_mode |= FMODE_CAN_ATOMIC_WRITE; > > > return generic_file_open(inode, file); > > > } > > > -- > > > 2.31.1 > > > > > > > >