On Mon, Jan 31, 2022 at 05:43:46PM +1100, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > Callers can acheive the same thing by calling xfs_log_force_inode() > after making their modifications. There is no need for > xfs_update_prealloc_flags() to do this. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> > --- > fs/xfs/xfs_file.c | 8 +++----- > fs/xfs/xfs_inode.h | 3 +-- > fs/xfs/xfs_pnfs.c | 6 ++++-- > 3 files changed, 8 insertions(+), 9 deletions(-) > > diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c > index 22ad207bedf4..6eda41710a5a 100644 > --- a/fs/xfs/xfs_file.c > +++ b/fs/xfs/xfs_file.c > @@ -95,8 +95,6 @@ xfs_update_prealloc_flags( > ip->i_diflags &= ~XFS_DIFLAG_PREALLOC; > > xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); > - if (flags & XFS_PREALLOC_SYNC) > - xfs_trans_set_sync(tp); > return xfs_trans_commit(tp); > } > > @@ -1057,9 +1055,6 @@ xfs_file_fallocate( > } > } > > - if (file->f_flags & O_DSYNC) > - flags |= XFS_PREALLOC_SYNC; > - > error = xfs_update_prealloc_flags(ip, flags); > if (error) > goto out_unlock; > @@ -1085,6 +1080,9 @@ xfs_file_fallocate( > if (do_file_insert) > error = xfs_insert_file_space(ip, offset, len); This needs to handle a nonzero error case here. The rest of the logic makes sense though. --D > > + if (file->f_flags & O_DSYNC) > + error = xfs_log_force_inode(ip); > + > out_unlock: > xfs_iunlock(ip, iolock); > return error; > diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h > index c447bf04205a..3fc6d77f5be9 100644 > --- a/fs/xfs/xfs_inode.h > +++ b/fs/xfs/xfs_inode.h > @@ -465,8 +465,7 @@ xfs_itruncate_extents( > enum xfs_prealloc_flags { > XFS_PREALLOC_SET = (1 << 1), > XFS_PREALLOC_CLEAR = (1 << 2), > - XFS_PREALLOC_SYNC = (1 << 3), > - XFS_PREALLOC_INVISIBLE = (1 << 4), > + XFS_PREALLOC_INVISIBLE = (1 << 3), > }; > > int xfs_update_prealloc_flags(struct xfs_inode *ip, > diff --git a/fs/xfs/xfs_pnfs.c b/fs/xfs/xfs_pnfs.c > index d6334abbc0b3..ce6d66f20385 100644 > --- a/fs/xfs/xfs_pnfs.c > +++ b/fs/xfs/xfs_pnfs.c > @@ -164,10 +164,12 @@ xfs_fs_map_blocks( > * that the blocks allocated and handed out to the client are > * guaranteed to be present even after a server crash. > */ > - error = xfs_update_prealloc_flags(ip, > - XFS_PREALLOC_SET | XFS_PREALLOC_SYNC); > + error = xfs_update_prealloc_flags(ip, XFS_PREALLOC_SET); > + if (!error) > + error = xfs_log_force_inode(ip); > if (error) > goto out_unlock; > + > } else { > xfs_iunlock(ip, lock_flags); > } > -- > 2.33.0 >