diff options
author | Matthew Macy <[email protected]> | 2020-06-17 21:44:13 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-17 21:44:13 -0700 |
commit | 7564073ed6344c12e6bc4ffabd130522d937fb93 (patch) | |
tree | a4718c134d55297d537f8d79da6a6a82051d40cc /module | |
parent | 4458157beecdf892a596bf8a61a958ebc492f0b3 (diff) |
Add abd_cache_reap_now for abd_chunk_cache users
Apparently missed in the initial port integration was
the need to reap the abd_chunk_cache on FreeBSD. This
change addresses that oversight.
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Alexander Motin <[email protected]>
Signed-off-by: Matt Macy <[email protected]>
Closes #10474
Diffstat (limited to 'module')
-rw-r--r-- | module/os/freebsd/zfs/abd_os.c | 6 | ||||
-rw-r--r-- | module/os/linux/zfs/abd_os.c | 5 | ||||
-rw-r--r-- | module/zfs/arc.c | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/module/os/freebsd/zfs/abd_os.c b/module/os/freebsd/zfs/abd_os.c index 500174775..b4d43b96a 100644 --- a/module/os/freebsd/zfs/abd_os.c +++ b/module/os/freebsd/zfs/abd_os.c @@ -488,3 +488,9 @@ abd_iter_unmap(struct abd_iter *aiter) aiter->iter_mapaddr = NULL; aiter->iter_mapsize = 0; } + +void +abd_cache_reap_now(void) +{ + kmem_cache_reap_soon(abd_chunk_cache); +} diff --git a/module/os/linux/zfs/abd_os.c b/module/os/linux/zfs/abd_os.c index d39f0c6d5..1754ce032 100644 --- a/module/os/linux/zfs/abd_os.c +++ b/module/os/linux/zfs/abd_os.c @@ -920,6 +920,11 @@ abd_iter_unmap(struct abd_iter *aiter) aiter->iter_mapsize = 0; } +void +abd_cache_reap_now(void) +{ +} + #if defined(_KERNEL) /* * bio_nr_pages for ABD. diff --git a/module/zfs/arc.c b/module/zfs/arc.c index 5717405d6..874cc02e8 100644 --- a/module/zfs/arc.c +++ b/module/zfs/arc.c @@ -4678,6 +4678,7 @@ arc_kmem_reap_soon(void) kmem_cache_reap_now(hdr_full_cache); kmem_cache_reap_now(hdr_l2only_cache); kmem_cache_reap_now(zfs_btree_leaf_cache); + abd_cache_reap_now(); if (zio_arena != NULL) { /* |