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 <behlendorf1@llnl.gov>
Signed-off-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Nikolay Borisov <kernel@kyup.com>
Closes #543
} 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 */