mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-17 10:26:15 +00:00
MFV r260834:
Fix memory leak of compressed buffers in l2arc_write_done (Illumos #3995).
This commit is contained in:
commit
bea6313e6b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=260835
@ -21,7 +21,7 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2013 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
|
||||
* Copyright (c) 2014 by Saso Kiselkov. All rights reserved.
|
||||
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
@ -4597,6 +4597,13 @@ l2arc_write_done(zio_t *zio)
|
||||
*/
|
||||
for (ab = list_prev(buflist, head); ab; ab = ab_prev) {
|
||||
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);
|
||||
if (!mutex_tryenter(hash_lock)) {
|
||||
@ -4609,14 +4616,6 @@ l2arc_write_done(zio_t *zio)
|
||||
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) {
|
||||
/*
|
||||
* Error - drop L2ARC entry.
|
||||
|
Loading…
Reference in New Issue
Block a user