[PATCH 02/22] fs: Move pagecache_write_begin() and pagecache_write_end()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxx>
---
 include/linux/fs.h      | 12 ------------
 include/linux/pagemap.h | 20 ++++++++++++++++++++
 mm/filemap.c            | 21 ---------------------
 3 files changed, 20 insertions(+), 33 deletions(-)

diff --git a/include/linux/fs.h b/include/linux/fs.h
index 394570a970af..2843f789a6db 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -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.
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index 9cd504542c31..76b0ddfef5ba 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -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)
 
 /**
diff --git a/mm/filemap.c b/mm/filemap.c
index c2bef068afab..9e3ccc2e54ee 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -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.
  */
-- 
2.34.1




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux