Module Name: src Committed By: mlelstv Date: Sat Dec 24 16:39:55 UTC 2016
Modified Files: src/sys/dev/dkwedge: dk.c Log Message: add missing mutex/cv cleanup to error paths. To generate a diff of this commit: cvs rdiff -u -r1.92 -r1.93 src/sys/dev/dkwedge/dk.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/dkwedge/dk.c diff -u src/sys/dev/dkwedge/dk.c:1.92 src/sys/dev/dkwedge/dk.c:1.93 --- src/sys/dev/dkwedge/dk.c:1.92 Fri Dec 16 15:06:39 2016 +++ src/sys/dev/dkwedge/dk.c Sat Dec 24 16:39:55 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: dk.c,v 1.92 2016/12/16 15:06:39 mlelstv Exp $ */ +/* $NetBSD: dk.c,v 1.93 2016/12/24 16:39:55 mlelstv Exp $ */ /*- * Copyright (c) 2004, 2005, 2006, 2007 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dk.c,v 1.92 2016/12/16 15:06:39 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dk.c,v 1.93 2016/12/24 16:39:55 mlelstv Exp $"); #ifdef _KERNEL_OPT #include "opt_dkwedge.h" @@ -369,6 +369,8 @@ dkwedge_add(struct dkwedge_info *dkw) } mutex_exit(&pdk->dk_openlock); if (error) { + cv_destroy(&sc->sc_dkdrn); + mutex_destroy(&sc->sc_iolock); bufq_free(sc->sc_bufq); free(sc, M_DKWEDGE); return (error); @@ -422,6 +424,8 @@ dkwedge_add(struct dkwedge_info *dkw) LIST_REMOVE(sc, sc_plink); mutex_exit(&pdk->dk_openlock); + cv_destroy(&sc->sc_dkdrn); + mutex_destroy(&sc->sc_iolock); bufq_free(sc->sc_bufq); free(sc, M_DKWEDGE); return (error); @@ -448,6 +452,8 @@ dkwedge_add(struct dkwedge_info *dkw) LIST_REMOVE(sc, sc_plink); mutex_exit(&pdk->dk_openlock); + cv_destroy(&sc->sc_dkdrn); + mutex_destroy(&sc->sc_iolock); bufq_free(sc->sc_bufq); free(sc, M_DKWEDGE); return (ENOMEM);