aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/fs.h2
-rw-r--r--mm/filemap.c43
2 files changed, 8 insertions, 37 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 99817c9e665e..a6448849dbce 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2411,10 +2411,8 @@ extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *);
2411extern int generic_file_remap_pages(struct vm_area_struct *, unsigned long addr, 2411extern int generic_file_remap_pages(struct vm_area_struct *, unsigned long addr,
2412 unsigned long size, pgoff_t pgoff); 2412 unsigned long size, pgoff_t pgoff);
2413int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk); 2413int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk);
2414extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t);
2415extern ssize_t generic_file_read_iter(struct kiocb *, struct iov_iter *); 2414extern ssize_t generic_file_read_iter(struct kiocb *, struct iov_iter *);
2416extern ssize_t __generic_file_write_iter(struct kiocb *, struct iov_iter *); 2415extern ssize_t __generic_file_write_iter(struct kiocb *, struct iov_iter *);
2417extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t);
2418extern ssize_t generic_file_write_iter(struct kiocb *, struct iov_iter *); 2416extern ssize_t generic_file_write_iter(struct kiocb *, struct iov_iter *);
2419extern ssize_t generic_file_direct_write(struct kiocb *, struct iov_iter *, loff_t); 2417extern ssize_t generic_file_direct_write(struct kiocb *, struct iov_iter *, loff_t);
2420extern ssize_t generic_perform_write(struct file *, struct iov_iter *, loff_t); 2418extern ssize_t generic_perform_write(struct file *, struct iov_iter *, loff_t);
diff --git a/mm/filemap.c b/mm/filemap.c
index 7dcdb9db710d..2f724e3cdf24 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1663,6 +1663,14 @@ out:
1663 return written ? written : error; 1663 return written ? written : error;
1664} 1664}
1665 1665
1666/**
1667 * generic_file_read_iter - generic filesystem read routine
1668 * @iocb: kernel I/O control block
1669 * @iter: destination for the data read
1670 *
1671 * This is the "read_iter()" routine for all filesystems
1672 * that can use the page cache directly.
1673 */
1666ssize_t 1674ssize_t
1667generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) 1675generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter)
1668{ 1676{
@@ -1713,28 +1721,6 @@ out:
1713} 1721}
1714EXPORT_SYMBOL(generic_file_read_iter); 1722EXPORT_SYMBOL(generic_file_read_iter);
1715 1723
1716/**
1717 * generic_file_aio_read - generic filesystem read routine
1718 * @iocb: kernel I/O control block
1719 * @iov: io vector request
1720 * @nr_segs: number of segments in the iovec
1721 * @pos: current file position
1722 *
1723 * This is the "read()" routine for all filesystems
1724 * that can use the page cache directly.
1725 */
1726ssize_t
1727generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov,
1728 unsigned long nr_segs, loff_t pos)
1729{
1730 size_t count = iov_length(iov, nr_segs);
1731 struct iov_iter i;
1732
1733 iov_iter_init(&i, READ, iov, nr_segs, count);
1734 return generic_file_read_iter(iocb, &i);
1735}
1736EXPORT_SYMBOL(generic_file_aio_read);
1737
1738#ifdef CONFIG_MMU 1724#ifdef CONFIG_MMU
1739/** 1725/**
1740 * page_cache_read - adds requested page to the page cache if not already there 1726 * page_cache_read - adds requested page to the page cache if not already there
@@ -2675,19 +2661,6 @@ ssize_t generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
2675} 2661}
2676EXPORT_SYMBOL(generic_file_write_iter); 2662EXPORT_SYMBOL(generic_file_write_iter);
2677 2663
2678ssize_t generic_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
2679 unsigned long nr_segs, loff_t pos)
2680{
2681 size_t count = iov_length(iov, nr_segs);
2682 struct iov_iter from;
2683
2684 BUG_ON(iocb->ki_pos != pos);
2685
2686 iov_iter_init(&from, WRITE, iov, nr_segs, count);
2687 return generic_file_write_iter(iocb, &from);
2688}
2689EXPORT_SYMBOL(generic_file_aio_write);
2690
2691/** 2664/**
2692 * try_to_release_page() - release old fs-specific metadata on a page 2665 * try_to_release_page() - release old fs-specific metadata on a page
2693 * 2666 *