On Sat, Apr 02, 2011 at 12:04:09AM +0300, Mikolaj Golub wrote: > For me your patch look correct. But the same issue is for read :-). Also, to > avoid the leak I think we can just do g_destroy_bio() before "all sectors" > check. See the attached patch (had some testing).
The patch looks good. Please commit. > Index: sys/geom/eli/g_eli.c > =================================================================== > --- sys/geom/eli/g_eli.c (revision 220168) > +++ sys/geom/eli/g_eli.c (working copy) > @@ -160,13 +160,13 @@ g_eli_read_done(struct bio *bp) > pbp = bp->bio_parent; > if (pbp->bio_error == 0) > pbp->bio_error = bp->bio_error; > + g_destroy_bio(bp); > /* > * Do we have all sectors already? > */ > pbp->bio_inbed++; > if (pbp->bio_inbed < pbp->bio_children) > return; > - g_destroy_bio(bp); > sc = pbp->bio_to->geom->softc; > if (pbp->bio_error != 0) { > G_ELI_LOGREQ(0, pbp, "%s() failed", __func__); > @@ -202,6 +202,7 @@ g_eli_write_done(struct bio *bp) > if (bp->bio_error != 0) > pbp->bio_error = bp->bio_error; > } > + g_destroy_bio(bp); > /* > * Do we have all sectors already? > */ > @@ -215,7 +216,6 @@ g_eli_write_done(struct bio *bp) > pbp->bio_error); > pbp->bio_completed = 0; > } > - g_destroy_bio(bp); > /* > * Write is finished, send it up. > */ -- Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com
pgpmtOt5nWc4N.pgp
Description: PGP signature