mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 23:58:05 +00:00
NFS: fix up nfs_release_folio() to try to release the page
If the gfp context allows it, and we're not kswapd, then try to write out the folio that has private data. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
70e9db69f9
commit
96780ca55e
1 changed files with 7 additions and 2 deletions
|
@ -432,8 +432,13 @@ static bool nfs_release_folio(struct folio *folio, gfp_t gfp)
|
|||
dfprintk(PAGECACHE, "NFS: release_folio(%p)\n", folio);
|
||||
|
||||
/* If the private flag is set, then the folio is not freeable */
|
||||
if (folio_test_private(folio))
|
||||
return false;
|
||||
if (folio_test_private(folio)) {
|
||||
if ((current_gfp_context(gfp) & GFP_KERNEL) != GFP_KERNEL ||
|
||||
current_is_kswapd())
|
||||
return false;
|
||||
if (nfs_wb_folio(folio_file_mapping(folio)->host, folio) < 0)
|
||||
return false;
|
||||
}
|
||||
return nfs_fscache_release_folio(folio, gfp);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue