aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Chase <[email protected]>2016-04-24 18:29:03 -0500
committerBrian Behlendorf <[email protected]>2016-04-26 11:20:14 -0700
commit3bf657b90c792ff4539a75d3b66593de556580c0 (patch)
tree8af6779d0a4d7a434d0a4269dcf9d48c54111133
parentcdd39dd2457ac57622339669db0536a580374bd3 (diff)
Use vmem_free() in dfl_free() and add dfl_alloc()
This change was lost, somehow, in e5f9a9a. Since the arrays can be rather large, they need to be allocated with vmem_zalloc() via dfl_alloc() and freed with vmem_free() via dfl_free(). The new dfl_alloc() function should be used to allocate object of type dkioc_free_list_t in order that they're allocated from vmem. Signed-off-by: Brian Behlendorf <[email protected]> Signed-off-by: Tim Chase <[email protected]> Signed-off-by: Nikolay Borisov <[email protected]> Closes #543
-rw-r--r--include/sys/dkioc_free_util.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/sys/dkioc_free_util.h b/include/sys/dkioc_free_util.h
index a424d4232..bea5a5bbc 100644
--- a/include/sys/dkioc_free_util.h
+++ b/include/sys/dkioc_free_util.h
@@ -48,7 +48,11 @@ typedef struct dkioc_free_list_s {
} dkioc_free_list_t;
static inline void dfl_free(dkioc_free_list_t *dfl) {
- kmem_free(dfl, DFL_SZ(dfl->dfl_num_exts));
+ vmem_free(dfl, DFL_SZ(dfl->dfl_num_exts));
+}
+
+static inline dkioc_free_list_t *dfl_alloc(uint64_t dfl_num_exts, int flags) {
+ return vmem_zalloc(DFL_SZ(dfl_num_exts), flags);
}
#endif /* _SPL_DKIOC_UTIL_H */