Merge tag 'for-5.1-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave...
[sfrench/cifs-2.6.git] / fs / xfs / xfs_aops.h
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (c) 2005-2006 Silicon Graphics, Inc.
4  * All Rights Reserved.
5  */
6 #ifndef __XFS_AOPS_H__
7 #define __XFS_AOPS_H__
8
9 extern struct bio_set xfs_ioend_bioset;
10
11 /*
12  * Structure for buffered I/O completions.
13  */
14 struct xfs_ioend {
15         struct list_head        io_list;        /* next ioend in chain */
16         int                     io_fork;        /* inode fork written back */
17         xfs_exntst_t            io_state;       /* extent state */
18         struct inode            *io_inode;      /* file being written to */
19         size_t                  io_size;        /* size of the extent */
20         xfs_off_t               io_offset;      /* offset in the file */
21         struct work_struct      io_work;        /* xfsdatad work queue */
22         struct xfs_trans        *io_append_trans;/* xact. for size update */
23         struct bio              *io_bio;        /* bio being built */
24         struct bio              io_inline_bio;  /* MUST BE LAST! */
25 };
26
27 extern const struct address_space_operations xfs_address_space_operations;
28 extern const struct address_space_operations xfs_dax_aops;
29
30 int     xfs_setfilesize(struct xfs_inode *ip, xfs_off_t offset, size_t size);
31
32 extern void xfs_count_page_state(struct page *, int *, int *);
33 extern struct block_device *xfs_find_bdev_for_inode(struct inode *);
34 extern struct dax_device *xfs_find_daxdev_for_inode(struct inode *);
35
36 #endif /* __XFS_AOPS_H__ */