aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys/arc_impl.h
diff options
context:
space:
mode:
authorArne Jansen <[email protected]>2015-09-11 09:18:56 -0700
committerBrian Behlendorf <[email protected]>2015-09-11 11:14:38 -0700
commit4e0f33ffe018b07021f627328f0a207550d1b374 (patch)
treeb4b6b7a142ae2bd29ead4a99b6e292911a097cf3 /include/sys/arc_impl.h
parent9965059ab9991a5fc7df9a489021e73880b3bcc0 (diff)
Illumos 6214 - zpools going south
6214 zpools going south Reviewed by: Igor Kozhukhov <[email protected]> Reviewed by: George Wilson <[email protected]> Reviewed by: Dan McDonald <[email protected]> Reviewed by: Saso Kiselkov <[email protected]> References: https://www.illumos.org/issues/6214 http://cr.illumos.org/~webrev/sensille/6214_zpools_going_south/ Porting Notes: Reintroduce b_compress to the l2arc_buf_hdr_t. In commit b9541d6 the compression flags were moved to the generic b_flags in the arc_buf_hdr_t. This is a problem because l2arc_compress_buf() may manipulate the compression flags and this can only be done safely under the hash lock which is not held. See Illumos 6214 for a detailed analysis of the race. HDR_GET_COMPRESS() macro was removed from arc_buf_info(). Ported-by: Brian Behlendorf <[email protected]> Closes #3757
Diffstat (limited to 'include/sys/arc_impl.h')
-rw-r--r--include/sys/arc_impl.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sys/arc_impl.h b/include/sys/arc_impl.h
index 5f9f49252..a9dbfc8dd 100644
--- a/include/sys/arc_impl.h
+++ b/include/sys/arc_impl.h
@@ -187,6 +187,7 @@ typedef struct l2arc_buf_hdr {
/* real alloc'd buffer size depending on b_compress applied */
uint32_t b_hits;
int32_t b_asize;
+ uint8_t b_compress;
list_node_t b_l2node;
} l2arc_buf_hdr_t;