1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#ifndef __XFS_AOPS_H__
19#define __XFS_AOPS_H__
20
21extern mempool_t *xfs_ioend_pool;
22
23
24
25
26enum {
27 XFS_IO_INVALID,
28 XFS_IO_DELALLOC,
29 XFS_IO_UNWRITTEN,
30 XFS_IO_OVERWRITE,
31};
32
33#define XFS_IO_TYPES \
34 { XFS_IO_INVALID, "invalid" }, \
35 { XFS_IO_DELALLOC, "delalloc" }, \
36 { XFS_IO_UNWRITTEN, "unwritten" }, \
37 { XFS_IO_OVERWRITE, "overwrite" }
38
39
40
41
42
43typedef struct xfs_ioend {
44 struct list_head io_list;
45 unsigned int io_type;
46 int io_error;
47 atomic_t io_remaining;
48 struct inode *io_inode;
49 struct buffer_head *io_buffer_head;
50 struct buffer_head *io_buffer_tail;
51 size_t io_size;
52 xfs_off_t io_offset;
53 struct work_struct io_work;
54 struct xfs_trans *io_append_trans;
55} xfs_ioend_t;
56
57extern const struct address_space_operations xfs_address_space_operations;
58
59int xfs_get_blocks(struct inode *inode, sector_t offset,
60 struct buffer_head *map_bh, int create);
61int xfs_get_blocks_direct(struct inode *inode, sector_t offset,
62 struct buffer_head *map_bh, int create);
63int xfs_get_blocks_dax_fault(struct inode *inode, sector_t offset,
64 struct buffer_head *map_bh, int create);
65
66extern void xfs_count_page_state(struct page *, int *, int *);
67extern struct block_device *xfs_find_bdev_for_inode(struct inode *);
68
69#endif
70