| From: "Matthew Wilcox (Oracle)" <willy@infradead.org> |
| Subject: ocfs2: remove writepage implementation |
| Date: Fri, 15 Dec 2023 20:02:41 +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-11-willy@infradead.org |
| Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Reviewed-by: Christoph Hellwig <hch@lst.de> |
| Reviewed-by: Jens Axboe <axboe@kernel.dk> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| fs/ocfs2/aops.c | 15 ++++++--------- |
| fs/ocfs2/ocfs2_trace.h | 2 -- |
| 2 files changed, 6 insertions(+), 11 deletions(-) |
| |
| --- a/fs/ocfs2/aops.c~ocfs2-remove-writepage-implementation |
| +++ a/fs/ocfs2/aops.c |
| @@ -389,21 +389,18 @@ out_unlock: |
| /* Note: Because we don't support holes, our allocation has |
| * already happened (allocation writes zeros to the file data) |
| * so we don't have to worry about ordered writes in |
| - * ocfs2_writepage. |
| + * ocfs2_writepages. |
| * |
| - * ->writepage is called during the process of invalidating the page cache |
| + * ->writepages is called during the process of invalidating the page cache |
| * during blocked lock processing. It can't block on any cluster locks |
| * to during block mapping. It's relying on the fact that the block |
| * mapping can't have disappeared under the dirty pages that it is |
| * being asked to write back. |
| */ |
| -static int ocfs2_writepage(struct page *page, struct writeback_control *wbc) |
| +static int ocfs2_writepages(struct address_space *mapping, |
| + struct writeback_control *wbc) |
| { |
| - trace_ocfs2_writepage( |
| - (unsigned long long)OCFS2_I(page->mapping->host)->ip_blkno, |
| - page->index); |
| - |
| - return block_write_full_page(page, ocfs2_get_block, wbc); |
| + return mpage_writepages(mapping, wbc, ocfs2_get_block); |
| } |
| |
| /* Taken from ext3. We don't necessarily need the full blown |
| @@ -2471,7 +2468,7 @@ const struct address_space_operations oc |
| .dirty_folio = block_dirty_folio, |
| .read_folio = ocfs2_read_folio, |
| .readahead = ocfs2_readahead, |
| - .writepage = ocfs2_writepage, |
| + .writepages = ocfs2_writepages, |
| .write_begin = ocfs2_write_begin, |
| .write_end = ocfs2_write_end, |
| .bmap = ocfs2_bmap, |
| --- a/fs/ocfs2/ocfs2_trace.h~ocfs2-remove-writepage-implementation |
| +++ a/fs/ocfs2/ocfs2_trace.h |
| @@ -1157,8 +1157,6 @@ DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_get_blo |
| |
| DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_readpage); |
| |
| -DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_writepage); |
| - |
| DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_bmap); |
| |
| TRACE_EVENT(ocfs2_try_to_write_inline_data, |
| _ |