aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_iops.h
diff options
context:
space:
mode:
authorJohn Garry <john.g.garry@oracle.com>2025-05-07 14:18:28 -0700
committerDarrick J. Wong <djwong@kernel.org>2025-05-07 14:25:31 -0700
commit0ea88ed47bb1912377975f310da10183e0f6c5bb (patch)
treea516fd549fdc41dd275b467e1862d267af8d5e70 /fs/xfs/xfs_iops.h
parentxfs: refactor xfs_reflink_end_cow_extent() (diff)
downloadlinux-0ea88ed47bb1912377975f310da10183e0f6c5bb.tar.gz
linux-0ea88ed47bb1912377975f310da10183e0f6c5bb.zip
xfs: refine atomic write size check in xfs_file_write_iter()
Currently the size of atomic write allowed is fixed at the blocksize. To start to lift this restriction, partly refactor xfs_report_atomic_write() to into helpers - xfs_get_atomic_write_{min, max}() - and use those helpers to find the per-inode atomic write limits and check according to that. Also add xfs_get_atomic_write_max_opt() to return the optimal limit, and just return 0 since large atomics aren't supported yet. Reviewed-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: John Garry <john.g.garry@oracle.com>
Diffstat (limited to 'fs/xfs/xfs_iops.h')
-rw-r--r--fs/xfs/xfs_iops.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/xfs/xfs_iops.h b/fs/xfs/xfs_iops.h
index 3c1a2605ffd2..0896f6b8b3b8 100644
--- a/fs/xfs/xfs_iops.h
+++ b/fs/xfs/xfs_iops.h
@@ -19,5 +19,8 @@ int xfs_inode_init_security(struct inode *inode, struct inode *dir,
extern void xfs_setup_inode(struct xfs_inode *ip);
extern void xfs_setup_iops(struct xfs_inode *ip);
extern void xfs_diflags_to_iflags(struct xfs_inode *ip, bool init);
+unsigned int xfs_get_atomic_write_min(struct xfs_inode *ip);
+unsigned int xfs_get_atomic_write_max(struct xfs_inode *ip);
+unsigned int xfs_get_atomic_write_max_opt(struct xfs_inode *ip);
#endif /* __XFS_IOPS_H__ */