Illumos #3995
3995 Memory leak of compressed buffers in l2arc_write_done References: https://illumos.org/issues/3995 Ported-by: Richard Yao <ryao@gentoo.org> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #1688 Issue #1775
This commit is contained in:
parent
43a696ed38
commit
1ca546b338
|
@ -4487,6 +4487,13 @@ l2arc_write_done(zio_t *zio)
|
||||||
*/
|
*/
|
||||||
for (ab = list_prev(buflist, head); ab; ab = ab_prev) {
|
for (ab = list_prev(buflist, head); ab; ab = ab_prev) {
|
||||||
ab_prev = list_prev(buflist, ab);
|
ab_prev = list_prev(buflist, ab);
|
||||||
|
abl2 = ab->b_l2hdr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Release the temporary compressed buffer as soon as possible.
|
||||||
|
*/
|
||||||
|
if (abl2->b_compress != ZIO_COMPRESS_OFF)
|
||||||
|
l2arc_release_cdata_buf(ab);
|
||||||
|
|
||||||
hash_lock = HDR_LOCK(ab);
|
hash_lock = HDR_LOCK(ab);
|
||||||
if (!mutex_tryenter(hash_lock)) {
|
if (!mutex_tryenter(hash_lock)) {
|
||||||
|
@ -4499,14 +4506,6 @@ l2arc_write_done(zio_t *zio)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
abl2 = ab->b_l2hdr;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Release the temporary compressed buffer as soon as possible.
|
|
||||||
*/
|
|
||||||
if (abl2->b_compress != ZIO_COMPRESS_OFF)
|
|
||||||
l2arc_release_cdata_buf(ab);
|
|
||||||
|
|
||||||
if (zio->io_error != 0) {
|
if (zio->io_error != 0) {
|
||||||
/*
|
/*
|
||||||
* Error - drop L2ARC entry.
|
* Error - drop L2ARC entry.
|
||||||
|
|
Loading…
Reference in New Issue