fscache: remove unused ->now_uncached callback
authorJan Kara <jack@suse.cz>
Wed, 6 Sep 2017 23:21:15 +0000 (16:21 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 7 Sep 2017 00:27:26 +0000 (17:27 -0700)
Patch series "Ranged pagevec lookup", v2.

In this series I make pagevec_lookup() update the index (to be
consistent with pagevec_lookup_tag() and also as a preparation for
ranged lookups), provide ranged variant of pagevec_lookup() and use it
in places where it makes sense.  This not only removes some common code
but is also a measurable performance win for some use cases (see patch
4/10) where radix tree is sparse and searching & grabing of a page after
the end of the range has measurable overhead.

This patch (of 10):

The callback doesn't ever get called.  Remove it.

Link: http://lkml.kernel.org/r/20170726114704.7626-2-jack@suse.cz
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Documentation/filesystems/caching/netfs-api.txt
fs/9p/cache.c
fs/afs/cache.c
fs/ceph/cache.c
fs/cifs/cache.c
fs/nfs/fscache-index.c
include/linux/fscache.h

index aed6b94160b1cec74face20a05f9c03f03a057f2..0eb31de3a2c1a7679855577f8e92e730ead9005e 100644 (file)
@@ -151,8 +151,6 @@ To define an object, a structure of the following type should be filled out:
                void (*mark_pages_cached)(void *cookie_netfs_data,
                                          struct address_space *mapping,
                                          struct pagevec *cached_pvec);
-
-               void (*now_uncached)(void *cookie_netfs_data);
        };
 
 This has the following fields:
index 103ca5e1267beb2229999e0711e50ba83f4c0abb..64c58eb26159324245a7581a67bfe5a5afd9f552 100644 (file)
@@ -151,34 +151,6 @@ fscache_checkaux v9fs_cache_inode_check_aux(void *cookie_netfs_data,
        return FSCACHE_CHECKAUX_OKAY;
 }
 
-static void v9fs_cache_inode_now_uncached(void *cookie_netfs_data)
-{
-       struct v9fs_inode *v9inode = cookie_netfs_data;
-       struct pagevec pvec;
-       pgoff_t first;
-       int loop, nr_pages;
-
-       pagevec_init(&pvec, 0);
-       first = 0;
-
-       for (;;) {
-               nr_pages = pagevec_lookup(&pvec, v9inode->vfs_inode.i_mapping,
-                                         first,
-                                         PAGEVEC_SIZE - pagevec_count(&pvec));
-               if (!nr_pages)
-                       break;
-
-               for (loop = 0; loop < nr_pages; loop++)
-                       ClearPageFsCache(pvec.pages[loop]);
-
-               first = pvec.pages[nr_pages - 1]->index + 1;
-
-               pvec.nr = nr_pages;
-               pagevec_release(&pvec);
-               cond_resched();
-       }
-}
-
 const struct fscache_cookie_def v9fs_cache_inode_index_def = {
        .name           = "9p.inode",
        .type           = FSCACHE_COOKIE_TYPE_DATAFILE,
@@ -186,7 +158,6 @@ const struct fscache_cookie_def v9fs_cache_inode_index_def = {
        .get_attr       = v9fs_cache_inode_get_attr,
        .get_aux        = v9fs_cache_inode_get_aux,
        .check_aux      = v9fs_cache_inode_check_aux,
-       .now_uncached   = v9fs_cache_inode_now_uncached,
 };
 
 void v9fs_cache_inode_get_cookie(struct inode *inode)
index 577763c3d88bb51e1ee41003298a4b545a1bb2fb..1fe855191261fce57a85be27f59690743957ecd6 100644 (file)
@@ -39,7 +39,6 @@ static uint16_t afs_vnode_cache_get_aux(const void *cookie_netfs_data,
 static enum fscache_checkaux afs_vnode_cache_check_aux(void *cookie_netfs_data,
                                                       const void *buffer,
                                                       uint16_t buflen);
-static void afs_vnode_cache_now_uncached(void *cookie_netfs_data);
 
 struct fscache_netfs afs_cache_netfs = {
        .name                   = "afs",
@@ -75,7 +74,6 @@ struct fscache_cookie_def afs_vnode_cache_index_def = {
        .get_attr               = afs_vnode_cache_get_attr,
        .get_aux                = afs_vnode_cache_get_aux,
        .check_aux              = afs_vnode_cache_check_aux,
-       .now_uncached           = afs_vnode_cache_now_uncached,
 };
 
 /*
@@ -359,44 +357,3 @@ static enum fscache_checkaux afs_vnode_cache_check_aux(void *cookie_netfs_data,
        _leave(" = SUCCESS");
        return FSCACHE_CHECKAUX_OKAY;
 }
-
-/*
- * indication the cookie is no longer uncached
- * - this function is called when the backing store currently caching a cookie
- *   is removed
- * - the netfs should use this to clean up any markers indicating cached pages
- * - this is mandatory for any object that may have data
- */
-static void afs_vnode_cache_now_uncached(void *cookie_netfs_data)
-{
-       struct afs_vnode *vnode = cookie_netfs_data;
-       struct pagevec pvec;
-       pgoff_t first;
-       int loop, nr_pages;
-
-       _enter("{%x,%x,%Lx}",
-              vnode->fid.vnode, vnode->fid.unique, vnode->status.data_version);
-
-       pagevec_init(&pvec, 0);
-       first = 0;
-
-       for (;;) {
-               /* grab a bunch of pages to clean */
-               nr_pages = pagevec_lookup(&pvec, vnode->vfs_inode.i_mapping,
-                                         first,
-                                         PAGEVEC_SIZE - pagevec_count(&pvec));
-               if (!nr_pages)
-                       break;
-
-               for (loop = 0; loop < nr_pages; loop++)
-                       ClearPageFsCache(pvec.pages[loop]);
-
-               first = pvec.pages[nr_pages - 1]->index + 1;
-
-               pvec.nr = nr_pages;
-               pagevec_release(&pvec);
-               cond_resched();
-       }
-
-       _leave("");
-}
index 337f88673ed9f71a83ea39080bdcd726eb116a15..174d6e6569a89a025037cf7dfc044e35236bb4b4 100644 (file)
@@ -194,36 +194,6 @@ static enum fscache_checkaux ceph_fscache_inode_check_aux(
        return FSCACHE_CHECKAUX_OKAY;
 }
 
-static void ceph_fscache_inode_now_uncached(void* cookie_netfs_data)
-{
-       struct ceph_inode_info* ci = cookie_netfs_data;
-       struct pagevec pvec;
-       pgoff_t first;
-       int loop, nr_pages;
-
-       pagevec_init(&pvec, 0);
-       first = 0;
-
-       dout("ceph inode 0x%p now uncached", ci);
-
-       while (1) {
-               nr_pages = pagevec_lookup(&pvec, ci->vfs_inode.i_mapping, first,
-                                         PAGEVEC_SIZE - pagevec_count(&pvec));
-
-               if (!nr_pages)
-                       break;
-
-               for (loop = 0; loop < nr_pages; loop++)
-                       ClearPageFsCache(pvec.pages[loop]);
-
-               first = pvec.pages[nr_pages - 1]->index + 1;
-
-               pvec.nr = nr_pages;
-               pagevec_release(&pvec);
-               cond_resched();
-       }
-}
-
 static const struct fscache_cookie_def ceph_fscache_inode_object_def = {
        .name           = "CEPH.inode",
        .type           = FSCACHE_COOKIE_TYPE_DATAFILE,
@@ -231,7 +201,6 @@ static const struct fscache_cookie_def ceph_fscache_inode_object_def = {
        .get_attr       = ceph_fscache_inode_get_attr,
        .get_aux        = ceph_fscache_inode_get_aux,
        .check_aux      = ceph_fscache_inode_check_aux,
-       .now_uncached   = ceph_fscache_inode_now_uncached,
 };
 
 void ceph_fscache_register_inode_cookie(struct inode *inode)
index 6c665bf4a27c2985b9baa5b0f888fc0f0a7bed65..2c14020e5e1d866afbb98b9779712ec8375ee6c0 100644 (file)
@@ -292,36 +292,6 @@ fscache_checkaux cifs_fscache_inode_check_aux(void *cookie_netfs_data,
        return FSCACHE_CHECKAUX_OKAY;
 }
 
-static void cifs_fscache_inode_now_uncached(void *cookie_netfs_data)
-{
-       struct cifsInodeInfo *cifsi = cookie_netfs_data;
-       struct pagevec pvec;
-       pgoff_t first;
-       int loop, nr_pages;
-
-       pagevec_init(&pvec, 0);
-       first = 0;
-
-       cifs_dbg(FYI, "%s: cifs inode 0x%p now uncached\n", __func__, cifsi);
-
-       for (;;) {
-               nr_pages = pagevec_lookup(&pvec,
-                                         cifsi->vfs_inode.i_mapping, first,
-                                         PAGEVEC_SIZE - pagevec_count(&pvec));
-               if (!nr_pages)
-                       break;
-
-               for (loop = 0; loop < nr_pages; loop++)
-                       ClearPageFsCache(pvec.pages[loop]);
-
-               first = pvec.pages[nr_pages - 1]->index + 1;
-
-               pvec.nr = nr_pages;
-               pagevec_release(&pvec);
-               cond_resched();
-       }
-}
-
 const struct fscache_cookie_def cifs_fscache_inode_object_def = {
        .name           = "CIFS.uniqueid",
        .type           = FSCACHE_COOKIE_TYPE_DATAFILE,
@@ -329,5 +299,4 @@ const struct fscache_cookie_def cifs_fscache_inode_object_def = {
        .get_attr       = cifs_fscache_inode_get_attr,
        .get_aux        = cifs_fscache_inode_get_aux,
        .check_aux      = cifs_fscache_inode_check_aux,
-       .now_uncached   = cifs_fscache_inode_now_uncached,
 };
index 777b055063f68a83e3655bd6cbeac8aabf1fba70..3025fe8584a05ce24df0e5900d213679b12aa33e 100644 (file)
@@ -251,45 +251,6 @@ enum fscache_checkaux nfs_fscache_inode_check_aux(void *cookie_netfs_data,
        return FSCACHE_CHECKAUX_OKAY;
 }
 
-/*
- * Indication from FS-Cache that the cookie is no longer cached
- * - This function is called when the backing store currently caching a cookie
- *   is removed
- * - The netfs should use this to clean up any markers indicating cached pages
- * - This is mandatory for any object that may have data
- */
-static void nfs_fscache_inode_now_uncached(void *cookie_netfs_data)
-{
-       struct nfs_inode *nfsi = cookie_netfs_data;
-       struct pagevec pvec;
-       pgoff_t first;
-       int loop, nr_pages;
-
-       pagevec_init(&pvec, 0);
-       first = 0;
-
-       dprintk("NFS: nfs_inode_now_uncached: nfs_inode 0x%p\n", nfsi);
-
-       for (;;) {
-               /* grab a bunch of pages to unmark */
-               nr_pages = pagevec_lookup(&pvec,
-                                         nfsi->vfs_inode.i_mapping,
-                                         first,
-                                         PAGEVEC_SIZE - pagevec_count(&pvec));
-               if (!nr_pages)
-                       break;
-
-               for (loop = 0; loop < nr_pages; loop++)
-                       ClearPageFsCache(pvec.pages[loop]);
-
-               first = pvec.pages[nr_pages - 1]->index + 1;
-
-               pvec.nr = nr_pages;
-               pagevec_release(&pvec);
-               cond_resched();
-       }
-}
-
 /*
  * Get an extra reference on a read context.
  * - This function can be absent if the completion function doesn't require a
@@ -330,7 +291,6 @@ const struct fscache_cookie_def nfs_fscache_inode_object_def = {
        .get_attr       = nfs_fscache_inode_get_attr,
        .get_aux        = nfs_fscache_inode_get_aux,
        .check_aux      = nfs_fscache_inode_check_aux,
-       .now_uncached   = nfs_fscache_inode_now_uncached,
        .get_context    = nfs_fh_get_context,
        .put_context    = nfs_fh_put_context,
 };
index 115bb81912ccc8759a54d206487cc8936e2a90c7..f4ff47d4a893a7bd0ef7f4baeef6c29dbee2a9f2 100644 (file)
@@ -143,15 +143,6 @@ struct fscache_cookie_def {
        void (*mark_page_cached)(void *cookie_netfs_data,
                                 struct address_space *mapping,
                                 struct page *page);
-
-       /* indicate the cookie is no longer cached
-        * - this function is called when the backing store currently caching
-        *   a cookie is removed
-        * - the netfs should use this to clean up any markers indicating
-        *   cached pages
-        * - this is mandatory for any object that may have data
-        */
-       void (*now_uncached)(void *cookie_netfs_data);
 };
 
 /*