forked from Minki/linux
ceph: Convert to release_folio
Use a folio throughout ceph_release_folio(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Jeff Layton <jlayton@kernel.org>
This commit is contained in:
parent
f913cff350
commit
5e4146558c
@ -162,24 +162,24 @@ static void ceph_invalidate_folio(struct folio *folio, size_t offset,
|
||||
folio_wait_fscache(folio);
|
||||
}
|
||||
|
||||
static int ceph_releasepage(struct page *page, gfp_t gfp)
|
||||
static bool ceph_release_folio(struct folio *folio, gfp_t gfp)
|
||||
{
|
||||
struct inode *inode = page->mapping->host;
|
||||
struct inode *inode = folio->mapping->host;
|
||||
|
||||
dout("%llx:%llx releasepage %p idx %lu (%sdirty)\n",
|
||||
ceph_vinop(inode), page,
|
||||
page->index, PageDirty(page) ? "" : "not ");
|
||||
dout("%llx:%llx release_folio idx %lu (%sdirty)\n",
|
||||
ceph_vinop(inode),
|
||||
folio->index, folio_test_dirty(folio) ? "" : "not ");
|
||||
|
||||
if (PagePrivate(page))
|
||||
return 0;
|
||||
if (folio_test_private(folio))
|
||||
return false;
|
||||
|
||||
if (PageFsCache(page)) {
|
||||
if (folio_test_fscache(folio)) {
|
||||
if (current_is_kswapd() || !(gfp & __GFP_FS))
|
||||
return 0;
|
||||
wait_on_page_fscache(page);
|
||||
return false;
|
||||
folio_wait_fscache(folio);
|
||||
}
|
||||
ceph_fscache_note_page_release(inode);
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
static void ceph_netfs_expand_readahead(struct netfs_io_request *rreq)
|
||||
@ -1380,7 +1380,7 @@ const struct address_space_operations ceph_aops = {
|
||||
.write_end = ceph_write_end,
|
||||
.dirty_folio = ceph_dirty_folio,
|
||||
.invalidate_folio = ceph_invalidate_folio,
|
||||
.releasepage = ceph_releasepage,
|
||||
.release_folio = ceph_release_folio,
|
||||
.direct_IO = noop_direct_IO,
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user