FreeBSD: Use the new freeuio() helper to free dynamically allocated UIOs
This freeuio() interface was introduced to FreeBSD recently. For now it simply calls free(), so this change has no effect. However, this may not always be true, and in CheriBSD this change is required. Signed-off-by: Mark Johnston <markj@FreeBSD.org>
This commit is contained in:
parent
c98295eed2
commit
c6d2b6e6cd
|
@ -45,6 +45,16 @@
|
|||
#include <sys/vnode.h>
|
||||
#include <sys/zfs_znode.h>
|
||||
|
||||
static void
|
||||
zfs_freeuio(struct uio *uio)
|
||||
{
|
||||
#if __FreeBSD_version > 1500013
|
||||
freeuio(uio);
|
||||
#else
|
||||
free(uio, M_IOV);
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
zfs_uiomove(void *cp, size_t n, zfs_uio_rw_t dir, zfs_uio_t *uio)
|
||||
{
|
||||
|
@ -77,7 +87,7 @@ zfs_uiocopy(void *p, size_t n, zfs_uio_rw_t rw, zfs_uio_t *uio, size_t *cbytes)
|
|||
error = vn_io_fault_uiomove(p, n, uio_clone);
|
||||
*cbytes = zfs_uio_resid(uio) - uio_clone->uio_resid;
|
||||
if (uio_clone != &small_uio_clone)
|
||||
free(uio_clone, M_IOV);
|
||||
zfs_freeuio(uio_clone);
|
||||
return (error);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue