summaryrefslogtreecommitdiffstats
path: root/sys/dev/md
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2005-01-22 19:56:03 +0000
committerpjd <pjd@FreeBSD.org>2005-01-22 19:56:03 +0000
commit5b525d8ac1f788291e823fd5ae3ab3736771be73 (patch)
tree995c69cda951e8881e8b5ee1df19dd00cb376a9d /sys/dev/md
parent99a68ccb1f502983fd26253292347237e51657c3 (diff)
downloadFreeBSD-src-5b525d8ac1f788291e823fd5ae3ab3736771be73.zip
FreeBSD-src-5b525d8ac1f788291e823fd5ae3ab3736771be73.tar.gz
- Don't destroy UMA zone on error in mdcreate_malloc(), because we need it
in mddestroy() to properly free already allocated memory. This fixes a panic when we want to create too big memory backed device with preallocate memory (-o reserve). - Remove redundant { }. MFC after: 1 week
Diffstat (limited to 'sys/dev/md')
-rw-r--r--sys/dev/md/md.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c
index fdcf4f6..4c5e557 100644
--- a/sys/dev/md/md.c
+++ b/sys/dev/md/md.c
@@ -819,8 +819,6 @@ mdcreate_malloc(struct md_s *sc, struct md_ioctl *mdio)
break;
}
}
- if (error != 0)
- uma_zdestroy(sc->uma);
return (error);
}
@@ -945,9 +943,8 @@ mddestroy(struct md_s *sc, struct thread *td)
FREAD : (FREAD|FWRITE), sc->cred, td);
if (sc->cred != NULL)
crfree(sc->cred);
- if (sc->object != NULL) {
+ if (sc->object != NULL)
vm_object_deallocate(sc->object);
- }
if (sc->indir)
destroy_indir(sc, sc->indir);
if (sc->uma)
OpenPOWER on IntegriCloud