OSDN Git Service

afs: Convert directory aops to invalidate_folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 9 Feb 2022 20:21:37 +0000 (20:21 +0000)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 15 Mar 2022 12:23:29 +0000 (08:23 -0400)
Use folio->index instead of folio_index() because there's no way we're
writing a page from the swapcache to a directory.

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
fs/afs/dir.c

index da9b4f8..d30b137 100644 (file)
@@ -42,8 +42,8 @@ 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 void afs_dir_invalidatepage(struct page *page, unsigned int offset,
-                                  unsigned int length);
+static void afs_dir_invalidate_folio(struct folio *folio, size_t offset,
+                                  size_t length);
 
 static int afs_dir_set_page_dirty(struct page *page)
 {
@@ -75,7 +75,7 @@ const struct inode_operations afs_dir_inode_operations = {
 const struct address_space_operations afs_dir_aops = {
        .set_page_dirty = afs_dir_set_page_dirty,
        .releasepage    = afs_dir_releasepage,
-       .invalidatepage = afs_dir_invalidatepage,
+       .invalidate_folio = afs_dir_invalidate_folio,
 };
 
 const struct dentry_operations afs_fs_dentry_operations = {
@@ -2019,13 +2019,12 @@ static int afs_dir_releasepage(struct page *subpage, gfp_t gfp_flags)
 /*
  * Invalidate part or all of a folio.
  */
-static void afs_dir_invalidatepage(struct page *subpage, unsigned int offset,
-                                  unsigned int length)
+static void afs_dir_invalidate_folio(struct folio *folio, size_t offset,
+                                  size_t length)
 {
-       struct folio *folio = page_folio(subpage);
        struct afs_vnode *dvnode = AFS_FS_I(folio_inode(folio));
 
-       _enter("{%lu},%u,%u", folio_index(folio), offset, length);
+       _enter("{%lu},%zu,%zu", folio->index, offset, length);
 
        BUG_ON(!folio_test_locked(folio));