]> git.proxmox.com Git - mirror_spl.git/commitdiff
Use vmem_free() in dfl_free() and add dfl_alloc()
authorTim Chase <tim@chase2k.com>
Sun, 24 Apr 2016 23:29:03 +0000 (18:29 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 26 Apr 2016 18:20:14 +0000 (11:20 -0700)
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

include/sys/dkioc_free_util.h

index a424d423203e7a90bb8321a333474429336d10a4..bea5a5bbc993b632b4e5e1c2e879102be9666dfb 100644 (file)
@@ -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 */