1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2003-2005 Silicon Graphics, Inc.
6 #ifndef __XFS_IOMAP_H__
7 #define __XFS_IOMAP_H__
9 #include <linux/iomap.h>
14 int xfs_iomap_write_direct(struct xfs_inode
*ip
, xfs_fileoff_t offset_fsb
,
15 xfs_fileoff_t count_fsb
, unsigned int flags
,
16 struct xfs_bmbt_irec
*imap
, u64
*sequence
);
17 int xfs_iomap_write_unwritten(struct xfs_inode
*, xfs_off_t
, xfs_off_t
, bool);
18 xfs_fileoff_t
xfs_iomap_eof_align_last_fsb(struct xfs_inode
*ip
,
19 xfs_fileoff_t end_fsb
);
21 u64
xfs_iomap_inode_sequence(struct xfs_inode
*ip
, u16 iomap_flags
);
22 int xfs_bmbt_to_iomap(struct xfs_inode
*ip
, struct iomap
*iomap
,
23 struct xfs_bmbt_irec
*imap
, unsigned int mapping_flags
,
24 u16 iomap_flags
, u64 sequence_cookie
);
26 int xfs_zero_range(struct xfs_inode
*ip
, loff_t pos
, loff_t len
,
28 int xfs_truncate_page(struct xfs_inode
*ip
, loff_t pos
, bool *did_zero
);
30 static inline xfs_filblks_t
31 xfs_aligned_fsb_count(
32 xfs_fileoff_t offset_fsb
,
33 xfs_filblks_t count_fsb
,
39 div_u64_rem(offset_fsb
, extsz
, &align
);
42 div_u64_rem(count_fsb
, extsz
, &align
);
44 count_fsb
+= extsz
- align
;
50 extern const struct iomap_ops xfs_buffered_write_iomap_ops
;
51 extern const struct iomap_ops xfs_direct_write_iomap_ops
;
52 extern const struct iomap_ops xfs_read_iomap_ops
;
53 extern const struct iomap_ops xfs_seek_iomap_ops
;
54 extern const struct iomap_ops xfs_xattr_iomap_ops
;
55 extern const struct iomap_ops xfs_dax_write_iomap_ops
;
57 #endif /* __XFS_IOMAP_H__*/