summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-05-20 14:23:18 -0700
committerBrian Behlendorf <[email protected]>2011-05-20 14:23:18 -0700
commit2b8cad61590d38f70ebf8734484204d7da2da937 (patch)
tree1b06aa3d588ed0f0c5b6e60b36b2e5bde5d3a9e3
parent4804b739e1e851f21f8e98c99275af2570c44a15 (diff)
Use vmem_alloc() for zfs_ioc_userspace_many()
The default buffer size when requesting multiple quota entries is 100 times the zfs_useracct_t size. In practice this works out to exactly 27200 bytes. Since this will be a short lived buffer in a non-performance critical path it is preferable to vmem_alloc() the needed memory.
-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 7fba6e727..39c60915e 100644
--- a/module/zfs/zfs_ioctl.c
+++ b/module/zfs/zfs_ioctl.c
@@ -4094,7 +4094,7 @@ zfs_ioc_userspace_many(zfs_cmd_t *zc)
if (error)
return (error);
- buf = kmem_alloc(bufsize, KM_SLEEP);
+ buf = vmem_alloc(bufsize, KM_SLEEP);
error = zfs_userspace_many(zsb, zc->zc_objset_type, &zc->zc_cookie,
buf, &zc->zc_nvlist_dst_size);
@@ -4104,7 +4104,7 @@ zfs_ioc_userspace_many(zfs_cmd_t *zc)
(void *)(uintptr_t)zc->zc_nvlist_dst,
zc->zc_nvlist_dst_size);
}
- kmem_free(buf, bufsize);
+ vmem_free(buf, bufsize);
zfs_sb_rele(zsb, FTAG);
return (error);