diff options
author | pjd <pjd@FreeBSD.org> | 2005-08-17 14:34:52 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2005-08-17 14:34:52 +0000 |
commit | b5aaabac190167f6c00c899a2b3c52e5baa34eea (patch) | |
tree | 32027f6a24c87fabc02157b81b6e57e5af8b60dc | |
parent | c79357de048dc2e59ce5e6b3a6d49958407bfba4 (diff) | |
download | FreeBSD-src-b5aaabac190167f6c00c899a2b3c52e5baa34eea.zip FreeBSD-src-b5aaabac190167f6c00c899a2b3c52e5baa34eea.tar.gz |
Even if crypto_dispatch() return an error, request is not canceled and
our callback will still be called, just to tell us that requested
failed...
Reported by: Mike Tancsa <mike@sentex.net>
MFC after: 3 days
-rw-r--r-- | sys/geom/eli/g_eli.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/sys/geom/eli/g_eli.c b/sys/geom/eli/g_eli.c index 575c63e..c5b7c06 100644 --- a/sys/geom/eli/g_eli.c +++ b/sys/geom/eli/g_eli.c @@ -588,21 +588,11 @@ g_eli_crypto_run(struct g_eli_worker *wr, struct bio *bp) crd->crd_next = NULL; err = crypto_dispatch(crp); - if (err != 0) { - G_ELI_DEBUG(1, "crypto_dispatch() returned %d.", err); - bp->bio_children--; - if (error == 0) - error = err; - } + if (error == 0) + error = err; } if (bp->bio_error == 0) bp->bio_error = error; - if (bp->bio_children > 0) - error = 0; - else { - free(bp->bio_driver2, M_ELI); - bp->bio_driver2 = NULL; - } return (error); } |