summaryrefslogtreecommitdiffstats
path: root/module/zfs
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-05-06 09:59:52 -0700
committerBrian Behlendorf <[email protected]>2011-05-06 09:59:52 -0700
commit34b84cb831695b276788493048ea34f8af8d5bdf (patch)
tree040da059de330d9a1aa1bd71a0530b576dfd4f2c /module/zfs
parent3613204cd7e3ab1ae658e31dac875e58827a6655 (diff)
Use vmem_alloc() for zfs_ioc_pool_get_history()
The default buffer size when requesting history is 128k. This is far to large for a kmem_alloc() so instead use the slower vmem_alloc(). This path has no performance concerns and the buffer is immediately free'd after its contents are copied to the user space buffer.
Diffstat (limited to 'module/zfs')
-rw-r--r--module/zfs/zfs_ioctl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c
index edfda7656..cb423e8b8 100644
--- a/module/zfs/zfs_ioctl.c
+++ b/module/zfs/zfs_ioctl.c
@@ -1441,7 +1441,7 @@ zfs_ioc_pool_get_history(zfs_cmd_t *zc)
return (ENOTSUP);
}
- hist_buf = kmem_alloc(size, KM_SLEEP);
+ hist_buf = vmem_alloc(size, KM_SLEEP);
if ((error = spa_history_get(spa, &zc->zc_history_offset,
&zc->zc_history_len, hist_buf)) == 0) {
error = ddi_copyout(hist_buf,
@@ -1450,7 +1450,7 @@ zfs_ioc_pool_get_history(zfs_cmd_t *zc)
}
spa_close(spa, FTAG);
- kmem_free(hist_buf, size);
+ vmem_free(hist_buf, size);
return (error);
}