diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/fs.h | 18 | ||||
-rw-r--r-- | include/linux/rmap.h | 6 |
2 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 929bf8d20c8..79c0fafc021 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -330,6 +330,8 @@ struct address_space_operations { int (*releasepage) (struct page *, int); ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, loff_t offset, unsigned long nr_segs); + struct page* (*get_xip_page)(struct address_space *, sector_t, + int); }; struct backing_dev_info; @@ -1497,6 +1499,22 @@ extern loff_t remote_llseek(struct file *file, loff_t offset, int origin); extern int generic_file_open(struct inode * inode, struct file * filp); extern int nonseekable_open(struct inode * inode, struct file * filp); +#ifdef CONFIG_FS_XIP +extern ssize_t xip_file_aio_read(struct kiocb *iocb, char __user *buf, + size_t count, loff_t pos); +extern ssize_t xip_file_readv(struct file *filp, const struct iovec *iov, + unsigned long nr_segs, loff_t *ppos); +extern ssize_t xip_file_sendfile(struct file *in_file, loff_t *ppos, + size_t count, read_actor_t actor, + void *target); +extern int xip_file_mmap(struct file * file, struct vm_area_struct * vma); +extern ssize_t xip_file_aio_write(struct kiocb *iocb, const char __user *buf, + size_t count, loff_t pos); +extern ssize_t xip_file_writev(struct file *file, const struct iovec *iov, + unsigned long nr_segs, loff_t *ppos); +extern int xip_truncate_page(struct address_space *mapping, loff_t from); +#endif + static inline void do_generic_file_read(struct file * filp, loff_t *ppos, read_descriptor_t * desc, read_actor_t actor) diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 11b484e37ac..e80fb7ee6ef 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -93,6 +93,12 @@ int page_referenced(struct page *, int is_locked, int ignore_token); int try_to_unmap(struct page *); /* + * Called from mm/filemap_xip.c to unmap empty zero page + */ +pte_t *page_check_address(struct page *, struct mm_struct *, unsigned long); + + +/* * Used by swapoff to help locate where page is expected in vma. */ unsigned long page_address_in_vma(struct page *, struct vm_area_struct *); |