Lines Matching refs:compr_pool
179 } compr_pool; variable
190 ret = READ_ONCE(compr_pool.count) - READ_ONCE(compr_pool.thresh); in btrfs_compr_pool_count()
201 if (compr_pool.count == 0) in btrfs_compr_pool_scan()
207 spin_lock(&compr_pool.lock); in btrfs_compr_pool_scan()
208 list_splice_init(&compr_pool.list, &remove); in btrfs_compr_pool_scan()
209 freed = compr_pool.count; in btrfs_compr_pool_scan()
210 compr_pool.count = 0; in btrfs_compr_pool_scan()
211 spin_unlock(&compr_pool.lock); in btrfs_compr_pool_scan()
230 spin_lock(&compr_pool.lock); in btrfs_alloc_compr_folio()
231 if (compr_pool.count > 0) { in btrfs_alloc_compr_folio()
232 folio = list_first_entry(&compr_pool.list, struct folio, lru); in btrfs_alloc_compr_folio()
234 compr_pool.count--; in btrfs_alloc_compr_folio()
236 spin_unlock(&compr_pool.lock); in btrfs_alloc_compr_folio()
248 spin_lock(&compr_pool.lock); in btrfs_free_compr_folio()
249 if (compr_pool.count > compr_pool.thresh) { in btrfs_free_compr_folio()
252 list_add(&folio->lru, &compr_pool.list); in btrfs_free_compr_folio()
253 compr_pool.count++; in btrfs_free_compr_folio()
255 spin_unlock(&compr_pool.lock); in btrfs_free_compr_folio()
1104 compr_pool.shrinker = shrinker_alloc(SHRINKER_NONSLAB, "btrfs-compr-pages"); in btrfs_init_compress()
1105 if (!compr_pool.shrinker) in btrfs_init_compress()
1113 spin_lock_init(&compr_pool.lock); in btrfs_init_compress()
1114 INIT_LIST_HEAD(&compr_pool.list); in btrfs_init_compress()
1115 compr_pool.count = 0; in btrfs_init_compress()
1117 compr_pool.thresh = BTRFS_MAX_COMPRESSED / PAGE_SIZE * 8; in btrfs_init_compress()
1118 compr_pool.shrinker->count_objects = btrfs_compr_pool_count; in btrfs_init_compress()
1119 compr_pool.shrinker->scan_objects = btrfs_compr_pool_scan; in btrfs_init_compress()
1120 compr_pool.shrinker->batch = 32; in btrfs_init_compress()
1121 compr_pool.shrinker->seeks = DEFAULT_SEEKS; in btrfs_init_compress()
1122 shrinker_register(compr_pool.shrinker); in btrfs_init_compress()
1131 shrinker_free(compr_pool.shrinker); in btrfs_exit_compress()