Deleted Added
full compact
vdev_impl.h (302408) vdev_impl.h (307277)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 39 unchanged lines hidden (view full) ---

48
49/*
50 * Forward declarations that lots of things need.
51 */
52typedef struct vdev_queue vdev_queue_t;
53typedef struct vdev_cache vdev_cache_t;
54typedef struct vdev_cache_entry vdev_cache_entry_t;
55
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 39 unchanged lines hidden (view full) ---

48
49/*
50 * Forward declarations that lots of things need.
51 */
52typedef struct vdev_queue vdev_queue_t;
53typedef struct vdev_cache vdev_cache_t;
54typedef struct vdev_cache_entry vdev_cache_entry_t;
55
56extern int zfs_vdev_queue_depth_pct;
57extern uint32_t zfs_vdev_async_write_max_active;
58
56/*
57 * Virtual device operations
58 */
59typedef int vdev_open_func_t(vdev_t *vd, uint64_t *size, uint64_t *max_size,
60 uint64_t *logical_ashift, uint64_t *physical_ashift);
61typedef void vdev_close_func_t(vdev_t *vd);
62typedef uint64_t vdev_asize_func_t(vdev_t *vd, uint64_t psize);
63typedef void vdev_io_start_func_t(zio_t *zio);

--- 121 unchanged lines hidden (view full) ---

185 txg_node_t vdev_txg_node; /* per-txg dirty vdev linkage */
186 boolean_t vdev_remove_wanted; /* async remove wanted? */
187 boolean_t vdev_probe_wanted; /* async probe wanted? */
188 list_node_t vdev_config_dirty_node; /* config dirty list */
189 list_node_t vdev_state_dirty_node; /* state dirty list */
190 uint64_t vdev_deflate_ratio; /* deflation ratio (x512) */
191 uint64_t vdev_islog; /* is an intent log device */
192 uint64_t vdev_removing; /* device is being removed? */
59/*
60 * Virtual device operations
61 */
62typedef int vdev_open_func_t(vdev_t *vd, uint64_t *size, uint64_t *max_size,
63 uint64_t *logical_ashift, uint64_t *physical_ashift);
64typedef void vdev_close_func_t(vdev_t *vd);
65typedef uint64_t vdev_asize_func_t(vdev_t *vd, uint64_t psize);
66typedef void vdev_io_start_func_t(zio_t *zio);

--- 121 unchanged lines hidden (view full) ---

188 txg_node_t vdev_txg_node; /* per-txg dirty vdev linkage */
189 boolean_t vdev_remove_wanted; /* async remove wanted? */
190 boolean_t vdev_probe_wanted; /* async probe wanted? */
191 list_node_t vdev_config_dirty_node; /* config dirty list */
192 list_node_t vdev_state_dirty_node; /* state dirty list */
193 uint64_t vdev_deflate_ratio; /* deflation ratio (x512) */
194 uint64_t vdev_islog; /* is an intent log device */
195 uint64_t vdev_removing; /* device is being removed? */
193 boolean_t vdev_ishole; /* is a hole in the namespace */
196 boolean_t vdev_ishole; /* is a hole in the namespace */
197 kmutex_t vdev_queue_lock; /* protects vdev_queue_depth */
194 uint64_t vdev_top_zap;
195
196 /*
198 uint64_t vdev_top_zap;
199
200 /*
201 * The queue depth parameters determine how many async writes are
202 * still pending (i.e. allocated by net yet issued to disk) per
203 * top-level (vdev_async_write_queue_depth) and the maximum allowed
204 * (vdev_max_async_write_queue_depth). These values only apply to
205 * top-level vdevs.
206 */
207 uint64_t vdev_async_write_queue_depth;
208 uint64_t vdev_max_async_write_queue_depth;
209
210 /*
197 * Leaf vdev state.
198 */
199 range_tree_t *vdev_dtl[DTL_TYPES]; /* dirty time logs */
200 space_map_t *vdev_dtl_sm; /* dirty time log space map */
201 txg_node_t vdev_dtl_node; /* per-txg dirty DTL linkage */
202 uint64_t vdev_dtl_object; /* DTL object */
203 uint64_t vdev_psize; /* physical device capacity */
204 uint64_t vdev_wholedisk; /* true if this is a whole disk */

--- 184 unchanged lines hidden ---
211 * Leaf vdev state.
212 */
213 range_tree_t *vdev_dtl[DTL_TYPES]; /* dirty time logs */
214 space_map_t *vdev_dtl_sm; /* dirty time log space map */
215 txg_node_t vdev_dtl_node; /* per-txg dirty DTL linkage */
216 uint64_t vdev_dtl_object; /* DTL object */
217 uint64_t vdev_psize; /* physical device capacity */
218 uint64_t vdev_wholedisk; /* true if this is a whole disk */

--- 184 unchanged lines hidden ---