diff options
| author | John Garry <john.g.garry@oracle.com> | 2025-05-07 14:18:28 -0700 |
|---|---|---|
| committer | Darrick J. Wong <djwong@kernel.org> | 2025-05-07 14:25:31 -0700 |
| commit | 0ea88ed47bb1912377975f310da10183e0f6c5bb (patch) | |
| tree | a516fd549fdc41dd275b467e1862d267af8d5e70 /fs/xfs/xfs_iops.h | |
| parent | xfs: refactor xfs_reflink_end_cow_extent() (diff) | |
| download | linux-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.h | 3 |
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__ */ |
