5.3.2.1.20. Address Space Operations
struct address_space_operations {
int (*writepage) (struct page *page, struct writeback_control *wbc);
int (*readpage) (struct file *, struct page *);
int (*sync_page) (struct page *);
/* Write back some dirty pages from this mapping. */
int (*writepages) (struct address_space *, struct writeback_control *);
/* Set a page dirty */
int (*set_page_dirty) (struct page *page);
int (*readpages) (
struct file *filp, struct address_space *mapping,
struct list_head *pages, unsigned nr_pages);
/*
* ext3 requires that a successful prepare_write() call be followed
* by a commit_write() call - they must be balanced
*/
int (*prepare_write) (struct file *, struct page *, unsigned, unsigned);
int (*commit_write) (struct file *, struct page *, unsigned, unsigned);
/* Unfortunately this kludge is needed for FIBMAP. Don't use it */
sector_t (*bmap) (struct address_space *, sector_t);
int (*invalidatepage) (struct page *, unsigned long);
int (*releasepage) (struct page *, int);
ssize_t (*direct_IO) (
int, struct kiocb *, const struct iovec *iov,
loff_t offset, unsigned long nr_segs);
};