reiserfs: Convert from invalidatepage to invalidate_folio

This is a straightforward conversion.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Acked-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Tested-by: Mike Marshall <hubcap@omnibond.com> # orangefs
Tested-by: David Howells <dhowells@redhat.com> # afs
This commit is contained in:
Matthew Wilcox (Oracle) 2022-02-09 20:21:49 +00:00
parent 2a40be8125
commit d97dfc9484
2 changed files with 15 additions and 15 deletions

View File

@ -3094,7 +3094,7 @@ void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode)
* decide if this buffer needs to stay around for data logging or ordered * decide if this buffer needs to stay around for data logging or ordered
* write purposes * write purposes
*/ */
static int invalidatepage_can_drop(struct inode *inode, struct buffer_head *bh) static int invalidate_folio_can_drop(struct inode *inode, struct buffer_head *bh)
{ {
int ret = 1; int ret = 1;
struct reiserfs_journal *j = SB_JOURNAL(inode->i_sb); struct reiserfs_journal *j = SB_JOURNAL(inode->i_sb);
@ -3147,26 +3147,26 @@ free_jh:
return ret; return ret;
} }
/* clm -- taken from fs/buffer.c:block_invalidate_page */ /* clm -- taken from fs/buffer.c:block_invalidate_folio */
static void reiserfs_invalidatepage(struct page *page, unsigned int offset, static void reiserfs_invalidate_folio(struct folio *folio, size_t offset,
unsigned int length) size_t length)
{ {
struct buffer_head *head, *bh, *next; struct buffer_head *head, *bh, *next;
struct inode *inode = page->mapping->host; struct inode *inode = folio->mapping->host;
unsigned int curr_off = 0; unsigned int curr_off = 0;
unsigned int stop = offset + length; unsigned int stop = offset + length;
int partial_page = (offset || length < PAGE_SIZE); int partial_page = (offset || length < folio_size(folio));
int ret = 1; int ret = 1;
BUG_ON(!PageLocked(page)); BUG_ON(!folio_test_locked(folio));
if (!partial_page) if (!partial_page)
ClearPageChecked(page); folio_clear_checked(folio);
if (!page_has_buffers(page)) head = folio_buffers(folio);
if (!head)
goto out; goto out;
head = page_buffers(page);
bh = head; bh = head;
do { do {
unsigned int next_off = curr_off + bh->b_size; unsigned int next_off = curr_off + bh->b_size;
@ -3179,7 +3179,7 @@ static void reiserfs_invalidatepage(struct page *page, unsigned int offset,
* is this block fully invalidated? * is this block fully invalidated?
*/ */
if (offset <= curr_off) { if (offset <= curr_off) {
if (invalidatepage_can_drop(inode, bh)) if (invalidate_folio_can_drop(inode, bh))
reiserfs_unmap_buffer(bh); reiserfs_unmap_buffer(bh);
else else
ret = 0; ret = 0;
@ -3194,7 +3194,7 @@ static void reiserfs_invalidatepage(struct page *page, unsigned int offset,
* so real IO is not possible anymore. * so real IO is not possible anymore.
*/ */
if (!partial_page && ret) { if (!partial_page && ret) {
ret = try_to_release_page(page, 0); ret = filemap_release_folio(folio, 0);
/* maybe should BUG_ON(!ret); - neilb */ /* maybe should BUG_ON(!ret); - neilb */
} }
out: out:
@ -3430,7 +3430,7 @@ const struct address_space_operations reiserfs_address_space_operations = {
.readpage = reiserfs_readpage, .readpage = reiserfs_readpage,
.readahead = reiserfs_readahead, .readahead = reiserfs_readahead,
.releasepage = reiserfs_releasepage, .releasepage = reiserfs_releasepage,
.invalidatepage = reiserfs_invalidatepage, .invalidate_folio = reiserfs_invalidate_folio,
.write_begin = reiserfs_write_begin, .write_begin = reiserfs_write_begin,
.write_end = reiserfs_write_end, .write_end = reiserfs_write_end,
.bmap = reiserfs_aop_bmap, .bmap = reiserfs_aop_bmap,

View File

@ -858,8 +858,8 @@ loop_next:
ret = -EIO; ret = -EIO;
} }
/* /*
* ugly interaction with invalidatepage here. * ugly interaction with invalidate_folio here.
* reiserfs_invalidate_page will pin any buffer that has a * reiserfs_invalidate_folio will pin any buffer that has a
* valid journal head from an older transaction. If someone * valid journal head from an older transaction. If someone
* else sets our buffer dirty after we write it in the first * else sets our buffer dirty after we write it in the first
* loop, and then someone truncates the page away, nobody * loop, and then someone truncates the page away, nobody