mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-27 10:24:22 +03:00
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.
This commit is contained in:
parent
4804b739e1
commit
2b8cad6159
@ -4094,7 +4094,7 @@ zfs_ioc_userspace_many(zfs_cmd_t *zc)
|
|||||||
if (error)
|
if (error)
|
||||||
return (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,
|
error = zfs_userspace_many(zsb, zc->zc_objset_type, &zc->zc_cookie,
|
||||||
buf, &zc->zc_nvlist_dst_size);
|
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,
|
(void *)(uintptr_t)zc->zc_nvlist_dst,
|
||||||
zc->zc_nvlist_dst_size);
|
zc->zc_nvlist_dst_size);
|
||||||
}
|
}
|
||||||
kmem_free(buf, bufsize);
|
vmem_free(buf, bufsize);
|
||||||
zfs_sb_rele(zsb, FTAG);
|
zfs_sb_rele(zsb, FTAG);
|
||||||
|
|
||||||
return (error);
|
return (error);
|
||||||
|
Loading…
Reference in New Issue
Block a user