| From: "Matthew Wilcox (Oracle)" <willy@infradead.org> |
| Subject: sysv: remove writepage implementation |
| Date: Fri, 15 Dec 2023 20:02:42 +0000 |
| |
| If the filesystem implements migrate_folio and writepages, there is no |
| need for a writepage implementation. |
| |
| Link: https://lkml.kernel.org/r/20231215200245.748418-12-willy@infradead.org |
| Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Reviewed-by: Jens Axboe <axboe@kernel.dk> |
| Cc: Christoph Hellwig <hch@lst.de> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| fs/sysv/itree.c | 9 ++++++--- |
| 1 file changed, 6 insertions(+), 3 deletions(-) |
| |
| --- a/fs/sysv/itree.c~sysv-remove-writepage-implementation |
| +++ a/fs/sysv/itree.c |
| @@ -8,6 +8,7 @@ |
| |
| #include <linux/buffer_head.h> |
| #include <linux/mount.h> |
| +#include <linux/mpage.h> |
| #include <linux/string.h> |
| #include "sysv.h" |
| |
| @@ -456,9 +457,10 @@ int sysv_getattr(struct mnt_idmap *idmap |
| return 0; |
| } |
| |
| -static int sysv_writepage(struct page *page, struct writeback_control *wbc) |
| +static int sysv_writepages(struct address_space *mapping, |
| + struct writeback_control *wbc) |
| { |
| - return block_write_full_page(page,get_block,wbc); |
| + return mpage_writepages(mapping, wbc, get_block); |
| } |
| |
| static int sysv_read_folio(struct file *file, struct folio *folio) |
| @@ -503,8 +505,9 @@ const struct address_space_operations sy |
| .dirty_folio = block_dirty_folio, |
| .invalidate_folio = block_invalidate_folio, |
| .read_folio = sysv_read_folio, |
| - .writepage = sysv_writepage, |
| + .writepages = sysv_writepages, |
| .write_begin = sysv_write_begin, |
| .write_end = generic_write_end, |
| + .migrate_folio = buffer_migrate_folio, |
| .bmap = sysv_bmap |
| }; |
| _ |