mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
afs: Convert to release_folio
A straightforward conversion as they already work in terms of folios. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Jeff Layton <jlayton@kernel.org>
This commit is contained in:
parent
a26d3411bb
commit
508cae6843
@ -41,7 +41,7 @@ static int afs_symlink(struct user_namespace *mnt_userns, struct inode *dir,
|
||||
static int afs_rename(struct user_namespace *mnt_userns, struct inode *old_dir,
|
||||
struct dentry *old_dentry, struct inode *new_dir,
|
||||
struct dentry *new_dentry, unsigned int flags);
|
||||
static int afs_dir_releasepage(struct page *page, gfp_t gfp_flags);
|
||||
static bool afs_dir_release_folio(struct folio *folio, gfp_t gfp_flags);
|
||||
static void afs_dir_invalidate_folio(struct folio *folio, size_t offset,
|
||||
size_t length);
|
||||
|
||||
@ -75,7 +75,7 @@ const struct inode_operations afs_dir_inode_operations = {
|
||||
|
||||
const struct address_space_operations afs_dir_aops = {
|
||||
.dirty_folio = afs_dir_dirty_folio,
|
||||
.releasepage = afs_dir_releasepage,
|
||||
.release_folio = afs_dir_release_folio,
|
||||
.invalidate_folio = afs_dir_invalidate_folio,
|
||||
};
|
||||
|
||||
@ -2002,9 +2002,8 @@ error:
|
||||
* Release a directory folio and clean up its private state if it's not busy
|
||||
* - return true if the folio can now be released, false if not
|
||||
*/
|
||||
static int afs_dir_releasepage(struct page *subpage, gfp_t gfp_flags)
|
||||
static bool afs_dir_release_folio(struct folio *folio, gfp_t gfp_flags)
|
||||
{
|
||||
struct folio *folio = page_folio(subpage);
|
||||
struct afs_vnode *dvnode = AFS_FS_I(folio_inode(folio));
|
||||
|
||||
_enter("{{%llx:%llu}[%lu]}", dvnode->fid.vid, dvnode->fid.vnode, folio_index(folio));
|
||||
|
@ -22,7 +22,7 @@ static int afs_file_mmap(struct file *file, struct vm_area_struct *vma);
|
||||
static int afs_symlink_read_folio(struct file *file, struct folio *folio);
|
||||
static void afs_invalidate_folio(struct folio *folio, size_t offset,
|
||||
size_t length);
|
||||
static int afs_releasepage(struct page *page, gfp_t gfp_flags);
|
||||
static bool afs_release_folio(struct folio *folio, gfp_t gfp_flags);
|
||||
|
||||
static ssize_t afs_file_read_iter(struct kiocb *iocb, struct iov_iter *iter);
|
||||
static void afs_vm_open(struct vm_area_struct *area);
|
||||
@ -54,7 +54,7 @@ const struct address_space_operations afs_file_aops = {
|
||||
.readahead = netfs_readahead,
|
||||
.dirty_folio = afs_dirty_folio,
|
||||
.launder_folio = afs_launder_folio,
|
||||
.releasepage = afs_releasepage,
|
||||
.release_folio = afs_release_folio,
|
||||
.invalidate_folio = afs_invalidate_folio,
|
||||
.write_begin = afs_write_begin,
|
||||
.write_end = afs_write_end,
|
||||
@ -64,7 +64,7 @@ const struct address_space_operations afs_file_aops = {
|
||||
|
||||
const struct address_space_operations afs_symlink_aops = {
|
||||
.read_folio = afs_symlink_read_folio,
|
||||
.releasepage = afs_releasepage,
|
||||
.release_folio = afs_release_folio,
|
||||
.invalidate_folio = afs_invalidate_folio,
|
||||
};
|
||||
|
||||
@ -481,16 +481,15 @@ static void afs_invalidate_folio(struct folio *folio, size_t offset,
|
||||
* release a page and clean up its private state if it's not busy
|
||||
* - return true if the page can now be released, false if not
|
||||
*/
|
||||
static int afs_releasepage(struct page *page, gfp_t gfp)
|
||||
static bool afs_release_folio(struct folio *folio, gfp_t gfp)
|
||||
{
|
||||
struct folio *folio = page_folio(page);
|
||||
struct afs_vnode *vnode = AFS_FS_I(folio_inode(folio));
|
||||
|
||||
_enter("{{%llx:%llu}[%lu],%lx},%x",
|
||||
vnode->fid.vid, vnode->fid.vnode, folio_index(folio), folio->flags,
|
||||
gfp);
|
||||
|
||||
/* deny if page is being written to the cache and the caller hasn't
|
||||
/* deny if folio is being written to the cache and the caller hasn't
|
||||
* elected to wait */
|
||||
#ifdef CONFIG_AFS_FSCACHE
|
||||
if (folio_test_fscache(folio)) {
|
||||
|
@ -311,7 +311,7 @@ struct afs_net {
|
||||
atomic_t n_lookup; /* Number of lookups done */
|
||||
atomic_t n_reval; /* Number of dentries needing revalidation */
|
||||
atomic_t n_inval; /* Number of invalidations by the server */
|
||||
atomic_t n_relpg; /* Number of invalidations by releasepage */
|
||||
atomic_t n_relpg; /* Number of invalidations by release_folio */
|
||||
atomic_t n_read_dir; /* Number of directory pages read */
|
||||
atomic_t n_dir_cr; /* Number of directory entry creation edits */
|
||||
atomic_t n_dir_rm; /* Number of directory entry removal edits */
|
||||
|
Loading…
Reference in New Issue
Block a user