| From: Christoph Hellwig <hch@lst.de> |
| Subject: ntfs3: remove ->writepage |
| Date: Thu, 29 Dec 2022 06:10:28 -1000 |
| |
| ->writepage is a very inefficient method to write back data, and only used |
| through write_cache_pages or a a fallback when no ->migrate_folio method |
| is present. |
| |
| Set ->migrate_folio to the generic buffer_head based helper, and remove |
| the ->writepage implementation. |
| |
| Link: https://lkml.kernel.org/r/20221229161031.391878-4-hch@lst.de |
| Signed-off-by: Christoph Hellwig <hch@lst.de> |
| Cc: Jan Kara <jack@suse.com> |
| Cc: Joel Becker <jlbec@evilplan.org> |
| Cc: Joseph Qi <joseph.qi@linux.alibaba.com> |
| Cc: Konstantin Komarov <almaz.alexandrovich@paragon-software.com> |
| Cc: Mark Fasheh <mark@fasheh.com> |
| Cc: Matthew Wilcox <willy@infradead.org> |
| Cc: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| fs/ntfs3/inode.c | 22 +--------------------- |
| 1 file changed, 1 insertion(+), 21 deletions(-) |
| |
| --- a/fs/ntfs3/inode.c~ntfs3-remove-writepage |
| +++ a/fs/ntfs3/inode.c |
| @@ -832,26 +832,6 @@ out: |
| return err; |
| } |
| |
| -static int ntfs_writepage(struct page *page, struct writeback_control *wbc) |
| -{ |
| - struct address_space *mapping = page->mapping; |
| - struct inode *inode = mapping->host; |
| - struct ntfs_inode *ni = ntfs_i(inode); |
| - int err; |
| - |
| - if (is_resident(ni)) { |
| - ni_lock(ni); |
| - err = attr_data_write_resident(ni, page); |
| - ni_unlock(ni); |
| - if (err != E_NTFS_NONRESIDENT) { |
| - unlock_page(page); |
| - return err; |
| - } |
| - } |
| - |
| - return block_write_full_page(page, ntfs_get_block, wbc); |
| -} |
| - |
| static int ntfs_resident_writepage(struct page *page, |
| struct writeback_control *wbc, void *data) |
| { |
| @@ -2083,13 +2063,13 @@ const struct inode_operations ntfs_link_ |
| const struct address_space_operations ntfs_aops = { |
| .read_folio = ntfs_read_folio, |
| .readahead = ntfs_readahead, |
| - .writepage = ntfs_writepage, |
| .writepages = ntfs_writepages, |
| .write_begin = ntfs_write_begin, |
| .write_end = ntfs_write_end, |
| .direct_IO = ntfs_direct_IO, |
| .bmap = ntfs_bmap, |
| .dirty_folio = block_dirty_folio, |
| + .migrate_folio = buffer_migrate_folio, |
| .invalidate_folio = block_invalidate_folio, |
| }; |
| |
| _ |