Skip to content

Commit

Permalink
Use vmem_zalloc to silence allocation warning
Browse files Browse the repository at this point in the history
The kmem allocation in zfs_prune_aliases() will trigger a large
allocation warning on systems with 64K pages.  Resolve this by
switching to vmem_alloc() which internally uses kvmalloc() so the
right allocator will be used based on the allocation size.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue openzfs#8491
  • Loading branch information
behlendorf committed Mar 30, 2023
1 parent 4b9bc63 commit cfe97e7
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions module/os/linux/zfs/zfs_vfsops.c
Original file line number Diff line number Diff line change
Expand Up @@ -1194,7 +1194,7 @@ zfs_prune_aliases(zfsvfs_t *zfsvfs, unsigned long nr_to_scan)
int objects = 0;
int i = 0, j = 0;

zp_array = kmem_zalloc(max_array * sizeof (znode_t *), KM_SLEEP);
zp_array = vmem_zalloc(max_array * sizeof (znode_t *), KM_SLEEP);

mutex_enter(&zfsvfs->z_znodes_lock);
while ((zp = list_head(&zfsvfs->z_all_znodes)) != NULL) {
Expand Down Expand Up @@ -1230,7 +1230,7 @@ zfs_prune_aliases(zfsvfs_t *zfsvfs, unsigned long nr_to_scan)
zrele(zp);
}

kmem_free(zp_array, max_array * sizeof (znode_t *));
vmem_free(zp_array, max_array * sizeof (znode_t *));

return (objects);
}
Expand Down

0 comments on commit cfe97e7

Please sign in to comment.