comparison usr/src/uts/common/fs/zfs/sys/arc.h @ 14039:6cfd5a5778b9

3137 L2ARC compression Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Dan McDonald <danmcd@nexenta.com>
author Saso Kiselkov <skiselkov@gmail.com>
date Wed, 05 Jun 2013 11:57:05 -0400
parents 4972ab336f54
children cb4a51285eeb
comparison
equal deleted inserted replaced
14038:597d3800949a 14039:6cfd5a5778b9
19 * CDDL HEADER END 19 * CDDL HEADER END
20 */ 20 */
21 /* 21 /*
22 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 22 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
23 * Copyright (c) 2012 by Delphix. All rights reserved. 23 * Copyright (c) 2012 by Delphix. All rights reserved.
24 * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
24 */ 25 */
25 26
26 #ifndef _SYS_ARC_H 27 #ifndef _SYS_ARC_H
27 #define _SYS_ARC_H 28 #define _SYS_ARC_H
28 29
65 #define ARC_WAIT (1 << 1) /* perform I/O synchronously */ 66 #define ARC_WAIT (1 << 1) /* perform I/O synchronously */
66 #define ARC_NOWAIT (1 << 2) /* perform I/O asynchronously */ 67 #define ARC_NOWAIT (1 << 2) /* perform I/O asynchronously */
67 #define ARC_PREFETCH (1 << 3) /* I/O is a prefetch */ 68 #define ARC_PREFETCH (1 << 3) /* I/O is a prefetch */
68 #define ARC_CACHED (1 << 4) /* I/O was already in cache */ 69 #define ARC_CACHED (1 << 4) /* I/O was already in cache */
69 #define ARC_L2CACHE (1 << 5) /* cache in L2ARC */ 70 #define ARC_L2CACHE (1 << 5) /* cache in L2ARC */
71 #define ARC_L2COMPRESS (1 << 6) /* compress in L2ARC */
70 72
71 /* 73 /*
72 * The following breakdows of arc_size exist for kstat only. 74 * The following breakdows of arc_size exist for kstat only.
73 */ 75 */
74 typedef enum arc_space_type { 76 typedef enum arc_space_type {
103 105
104 int arc_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, 106 int arc_read(zio_t *pio, spa_t *spa, const blkptr_t *bp,
105 arc_done_func_t *done, void *private, int priority, int flags, 107 arc_done_func_t *done, void *private, int priority, int flags,
106 uint32_t *arc_flags, const zbookmark_t *zb); 108 uint32_t *arc_flags, const zbookmark_t *zb);
107 zio_t *arc_write(zio_t *pio, spa_t *spa, uint64_t txg, 109 zio_t *arc_write(zio_t *pio, spa_t *spa, uint64_t txg,
108 blkptr_t *bp, arc_buf_t *buf, boolean_t l2arc, const zio_prop_t *zp, 110 blkptr_t *bp, arc_buf_t *buf, boolean_t l2arc, boolean_t l2arc_compress,
109 arc_done_func_t *ready, arc_done_func_t *done, void *private, 111 const zio_prop_t *zp, arc_done_func_t *ready, arc_done_func_t *done,
110 int priority, int zio_flags, const zbookmark_t *zb); 112 void *private, int priority, int zio_flags, const zbookmark_t *zb);
111 113
112 void arc_set_callback(arc_buf_t *buf, arc_evict_func_t *func, void *private); 114 void arc_set_callback(arc_buf_t *buf, arc_evict_func_t *func, void *private);
113 int arc_buf_evict(arc_buf_t *buf); 115 int arc_buf_evict(arc_buf_t *buf);
114 116
115 void arc_flush(spa_t *spa); 117 void arc_flush(spa_t *spa);