diff options
author | Brian Behlendorf <[email protected]> | 2011-05-06 09:59:52 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-05-06 09:59:52 -0700 |
commit | 34b84cb831695b276788493048ea34f8af8d5bdf (patch) | |
tree | 040da059de330d9a1aa1bd71a0530b576dfd4f2c /module/zfs/zfs_ioctl.c | |
parent | 3613204cd7e3ab1ae658e31dac875e58827a6655 (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/zfs_ioctl.c')
-rw-r--r-- | module/zfs/zfs_ioctl.c | 4 |
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); } |