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 <behlendorf1@llnl.gov>
Signed-off-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Nikolay Borisov <kernel@kyup.com>
Closes #543
This commit is contained in:
parent
cdd39dd245
commit
3bf657b90c
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue