@@ -391,18 +391,6 @@ struct address_space_operations {
extern const struct address_space_operations empty_aops;
-/*
- * pagecache_write_begin/pagecache_write_end must be used by general code
- * to write into the pagecache.
- */
-int pagecache_write_begin(struct file *, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned flags,
- struct page **pagep, void **fsdata);
-
-int pagecache_write_end(struct file *, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned copied,
- struct page *page, void *fsdata);
-
/**
* struct address_space - Contents of a cacheable, mappable object.
* @host: Owner, either the inode or the block_device.
@@ -529,6 +529,26 @@ static inline struct page *grab_cache_page_nowait(struct address_space *mapping,
mapping_gfp_mask(mapping));
}
+/*
+ * pagecache_write_begin/pagecache_write_end must be used by general code
+ * to write into the pagecache.
+ */
+static inline int pagecache_write_begin(struct file *file,
+ struct address_space *mapping, loff_t pos, unsigned len,
+ unsigned flags, struct page **pagep, void **fsdata)
+{
+ return mapping->a_ops->write_begin(file, mapping, pos, len, flags,
+ pagep, fsdata);
+}
+
+static inline int pagecache_write_end(struct file *file,
+ struct address_space *mapping, loff_t pos, unsigned len,
+ unsigned copied, struct page *page, void *fsdata)
+{
+ return mapping->a_ops->write_end(file, mapping, pos, len, copied,
+ page, fsdata);
+}
+
#define swapcache_index(folio) __page_file_index(&(folio)->page)
/**
@@ -3601,27 +3601,6 @@ struct page *read_cache_page_gfp(struct address_space *mapping,
}
EXPORT_SYMBOL(read_cache_page_gfp);
-int pagecache_write_begin(struct file *file, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned flags,
- struct page **pagep, void **fsdata)
-{
- const struct address_space_operations *aops = mapping->a_ops;
-
- return aops->write_begin(file, mapping, pos, len, flags,
- pagep, fsdata);
-}
-EXPORT_SYMBOL(pagecache_write_begin);
-
-int pagecache_write_end(struct file *file, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned copied,
- struct page *page, void *fsdata)
-{
- const struct address_space_operations *aops = mapping->a_ops;
-
- return aops->write_end(file, mapping, pos, len, copied, page, fsdata);
-}
-EXPORT_SYMBOL(pagecache_write_end);
-
/*
* Warn about a page cache invalidation failure during a direct I/O write.
*/
These functions are now simple enough to be static inlines. They should also be in pagemap.h instead of fs.h because they're pagecache functions. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- include/linux/fs.h | 12 ------------ include/linux/pagemap.h | 20 ++++++++++++++++++++ mm/filemap.c | 21 --------------------- 3 files changed, 20 insertions(+), 33 deletions(-)