File Index
Files and directories
Sign in
FILE

xfs_iomap.h

File preview with syntax highlighting.

linux-6.19.14/fs/xfs/xfs_iomap.h C
 1// SPDX-License-Identifier: GPL-2.0
 2/*
 3 * Copyright (c) 2003-2005 Silicon Graphics, Inc.
 4 * All Rights Reserved.
 5 */
 6#ifndef __XFS_IOMAP_H__
 7#define __XFS_IOMAP_H__
 8
 9#include <linux/iomap.h>
10
11struct xfs_inode;
12struct xfs_bmbt_irec;
13struct xfs_zone_alloc_ctx;
14
15int xfs_iomap_write_direct(struct xfs_inode *ip, xfs_fileoff_t offset_fsb,
16		xfs_fileoff_t count_fsb, unsigned int flags,
17		struct xfs_bmbt_irec *imap, u64 *sequence);
18int xfs_iomap_write_unwritten(struct xfs_inode *, xfs_off_t, xfs_off_t, bool);
19xfs_fileoff_t xfs_iomap_eof_align_last_fsb(struct xfs_inode *ip,
20		xfs_fileoff_t end_fsb);
21
22u64 xfs_iomap_inode_sequence(struct xfs_inode *ip, u16 iomap_flags);
23int xfs_bmbt_to_iomap(struct xfs_inode *ip, struct iomap *iomap,
24		struct xfs_bmbt_irec *imap, unsigned int mapping_flags,
25		u16 iomap_flags, u64 sequence_cookie);
26
27int xfs_zero_range(struct xfs_inode *ip, loff_t pos, loff_t len,
28		struct xfs_zone_alloc_ctx *ac, bool *did_zero);
29int xfs_truncate_page(struct xfs_inode *ip, loff_t pos,
30		struct xfs_zone_alloc_ctx *ac, bool *did_zero);
31
32static inline xfs_filblks_t
33xfs_aligned_fsb_count(
34	xfs_fileoff_t		offset_fsb,
35	xfs_filblks_t		count_fsb,
36	xfs_extlen_t		extsz)
37{
38	if (extsz) {
39		xfs_extlen_t	align;
40
41		div_u64_rem(offset_fsb, extsz, &align);
42		if (align)
43			count_fsb += align;
44		div_u64_rem(count_fsb, extsz, &align);
45		if (align)
46			count_fsb += extsz - align;
47	}
48
49	return count_fsb;
50}
51
52extern const struct iomap_ops xfs_buffered_write_iomap_ops;
53extern const struct iomap_ops xfs_direct_write_iomap_ops;
54extern const struct iomap_ops xfs_zoned_direct_write_iomap_ops;
55extern const struct iomap_ops xfs_read_iomap_ops;
56extern const struct iomap_ops xfs_seek_iomap_ops;
57extern const struct iomap_ops xfs_xattr_iomap_ops;
58extern const struct iomap_ops xfs_dax_write_iomap_ops;
59extern const struct iomap_ops xfs_atomic_write_cow_iomap_ops;
60extern const struct iomap_write_ops xfs_iomap_write_ops;
61
62#endif /* __XFS_IOMAP_H__*/
~/ Read-only file preview.