Blame view

fs/xfs/xfs_iomap.h 1.25 KB
0b61f8a40   Dave Chinner   xfs: convert to S...
1
  // SPDX-License-Identifier: GPL-2.0
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
2
  /*
7b7187698   Nathan Scott   [XFS] Update lice...
3
4
   * Copyright (c) 2003-2005 Silicon Graphics, Inc.
   * All Rights Reserved.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5
   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
6
7
  #ifndef __XFS_IOMAP_H__
  #define __XFS_IOMAP_H__
68a9f5e70   Christoph Hellwig   xfs: implement io...
8
  #include <linux/iomap.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
9
10
  struct xfs_inode;
  struct xfs_bmbt_irec;
e696663a9   Christoph Hellwig   xfs: simplify the...
11
12
  int xfs_iomap_write_direct(struct xfs_inode *ip, xfs_fileoff_t offset_fsb,
  		xfs_fileoff_t count_fsb, struct xfs_bmbt_irec *imap);
ee70daaba   Eryu Guan   xfs: update i_siz...
13
  int xfs_iomap_write_unwritten(struct xfs_inode *, xfs_off_t, xfs_off_t, bool);
e696663a9   Christoph Hellwig   xfs: simplify the...
14
15
  xfs_fileoff_t xfs_iomap_eof_align_last_fsb(struct xfs_inode *ip,
  		xfs_fileoff_t end_fsb);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
16

16be14337   Christoph Hellwig   xfs: make xfs_bmb...
17
  int xfs_bmbt_to_iomap(struct xfs_inode *, struct iomap *,
2492a606b   Christoph Hellwig   xfs: initialize i...
18
  		struct xfs_bmbt_irec *, u16);
3b3dce052   Christoph Hellwig   xfs: make xfs_bmb...
19

f13eb2055   Christoph Hellwig   xfs: introduce xf...
20
21
22
23
24
25
26
27
  static inline xfs_filblks_t
  xfs_aligned_fsb_count(
  	xfs_fileoff_t		offset_fsb,
  	xfs_filblks_t		count_fsb,
  	xfs_extlen_t		extsz)
  {
  	if (extsz) {
  		xfs_extlen_t	align;
0703a8e1c   Dave Chinner   xfs: replace do_m...
28
  		div_u64_rem(offset_fsb, extsz, &align);
f13eb2055   Christoph Hellwig   xfs: introduce xf...
29
30
  		if (align)
  			count_fsb += align;
0703a8e1c   Dave Chinner   xfs: replace do_m...
31
  		div_u64_rem(count_fsb, extsz, &align);
f13eb2055   Christoph Hellwig   xfs: introduce xf...
32
33
34
35
36
37
  		if (align)
  			count_fsb += extsz - align;
  	}
  
  	return count_fsb;
  }
f150b4234   Christoph Hellwig   xfs: split the io...
38
39
  extern const struct iomap_ops xfs_buffered_write_iomap_ops;
  extern const struct iomap_ops xfs_direct_write_iomap_ops;
690c2a388   Christoph Hellwig   xfs: split out a ...
40
  extern const struct iomap_ops xfs_read_iomap_ops;
60271ab79   Christoph Hellwig   xfs: fix SEEK_DAT...
41
  extern const struct iomap_ops xfs_seek_iomap_ops;
8ff6daa17   Christoph Hellwig   iomap: constify s...
42
  extern const struct iomap_ops xfs_xattr_iomap_ops;
68a9f5e70   Christoph Hellwig   xfs: implement io...
43

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
44
  #endif /* __XFS_IOMAP_H__*/