Merge tag 'driver-core-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-block.git] / mm / z3fold.c
index cf71da10d04e73e5126a71443e1cc4883054c21c..a4de0c317ac7c8224e396aee94ac94fa31801f5d 100644 (file)
@@ -68,9 +68,6 @@
  * Structures
 *****************/
 struct z3fold_pool;
-struct z3fold_ops {
-       int (*evict)(struct z3fold_pool *pool, unsigned long handle);
-};
 
 enum buddy {
        HEADLESS = 0,
@@ -138,8 +135,6 @@ struct z3fold_header {
  * @stale:     list of pages marked for freeing
  * @pages_nr:  number of z3fold pages in the pool.
  * @c_handle:  cache for z3fold_buddy_slots allocation
- * @ops:       pointer to a structure of user defined operations specified at
- *             pool creation time.
  * @zpool:     zpool driver
  * @zpool_ops: zpool operations structure with an evict callback
  * @compact_wq:        workqueue for page layout background optimization
@@ -158,7 +153,6 @@ struct z3fold_pool {
        struct list_head stale;
        atomic64_t pages_nr;
        struct kmem_cache *c_handle;
-       const struct z3fold_ops *ops;
        struct zpool *zpool;
        const struct zpool_ops *zpool_ops;
        struct workqueue_struct *compact_wq;
@@ -907,13 +901,11 @@ out_fail:
  * z3fold_create_pool() - create a new z3fold pool
  * @name:      pool name
  * @gfp:       gfp flags when allocating the z3fold pool structure
- * @ops:       user-defined operations for the z3fold pool
  *
  * Return: pointer to the new z3fold pool or NULL if the metadata allocation
  * failed.
  */
-static struct z3fold_pool *z3fold_create_pool(const char *name, gfp_t gfp,
-               const struct z3fold_ops *ops)
+static struct z3fold_pool *z3fold_create_pool(const char *name, gfp_t gfp)
 {
        struct z3fold_pool *pool = NULL;
        int i, cpu;
@@ -949,7 +941,6 @@ static struct z3fold_pool *z3fold_create_pool(const char *name, gfp_t gfp,
        if (!pool->release_wq)
                goto out_wq;
        INIT_WORK(&pool->work, free_pages_work);
-       pool->ops = ops;
        return pool;
 
 out_wq:
@@ -1230,10 +1221,6 @@ static int z3fold_reclaim_page(struct z3fold_pool *pool, unsigned int retries)
        slots.pool = (unsigned long)pool | (1 << HANDLES_NOFREE);
 
        spin_lock(&pool->lock);
-       if (!pool->ops || !pool->ops->evict || retries == 0) {
-               spin_unlock(&pool->lock);
-               return -EINVAL;
-       }
        for (i = 0; i < retries; i++) {
                if (list_empty(&pool->lru)) {
                        spin_unlock(&pool->lock);
@@ -1319,17 +1306,17 @@ static int z3fold_reclaim_page(struct z3fold_pool *pool, unsigned int retries)
                }
                /* Issue the eviction callback(s) */
                if (middle_handle) {
-                       ret = pool->ops->evict(pool, middle_handle);
+                       ret = pool->zpool_ops->evict(pool->zpool, middle_handle);
                        if (ret)
                                goto next;
                }
                if (first_handle) {
-                       ret = pool->ops->evict(pool, first_handle);
+                       ret = pool->zpool_ops->evict(pool->zpool, first_handle);
                        if (ret)
                                goto next;
                }
                if (last_handle) {
-                       ret = pool->ops->evict(pool, last_handle);
+                       ret = pool->zpool_ops->evict(pool->zpool, last_handle);
                        if (ret)
                                goto next;
                }
@@ -1593,26 +1580,13 @@ static const struct movable_operations z3fold_mops = {
  * zpool
  ****************/
 
-static int z3fold_zpool_evict(struct z3fold_pool *pool, unsigned long handle)
-{
-       if (pool->zpool && pool->zpool_ops && pool->zpool_ops->evict)
-               return pool->zpool_ops->evict(pool->zpool, handle);
-       else
-               return -ENOENT;
-}
-
-static const struct z3fold_ops z3fold_zpool_ops = {
-       .evict =        z3fold_zpool_evict
-};
-
 static void *z3fold_zpool_create(const char *name, gfp_t gfp,
                               const struct zpool_ops *zpool_ops,
                               struct zpool *zpool)
 {
        struct z3fold_pool *pool;
 
-       pool = z3fold_create_pool(name, gfp,
-                               zpool_ops ? &z3fold_zpool_ops : NULL);
+       pool = z3fold_create_pool(name, gfp);
        if (pool) {
                pool->zpool = zpool;
                pool->zpool_ops = zpool_ops;