2525
2626/*
2727 * Copyright (c) 2012, 2015 by Delphix. All rights reserved.
28+ * Copyright (c) 2024, Klara Inc.
2829 */
2930
3031#ifndef _ZIO_IMPL_H
@@ -39,7 +40,7 @@ extern "C" {
3940 *
4041 * The ZFS I/O pipeline is comprised of various stages which are defined
4142 * in the zio_stage enum below. The individual stages are used to construct
42- * these basic I/O operations: Read, Write, Free, Claim, and Ioctl .
43+ * these basic I/O operations: Read, Write, Free, Claim, Ioctl and Trim .
4344 *
4445 * I/O operations: (XXX - provide detail for each of the operations)
4546 *
@@ -48,6 +49,7 @@ extern "C" {
4849 * Free:
4950 * Claim:
5051 * Ioctl:
52+ * Trim:
5153 *
5254 * Although the most common pipeline are used by the basic I/O operations
5355 * above, there are some helper pipelines (one could consider them
@@ -120,43 +122,43 @@ extern "C" {
120122 * zio pipeline stage definitions
121123 */
122124enum zio_stage {
123- ZIO_STAGE_OPEN = 1 << 0 , /* RWFCI */
125+ ZIO_STAGE_OPEN = 1 << 0 , /* RWFCIT */
124126
125- ZIO_STAGE_READ_BP_INIT = 1 << 1 , /* R---- */
126- ZIO_STAGE_WRITE_BP_INIT = 1 << 2 , /* -W--- */
127- ZIO_STAGE_FREE_BP_INIT = 1 << 3 , /* --F-- */
128- ZIO_STAGE_ISSUE_ASYNC = 1 << 4 , /* RWF-- */
129- ZIO_STAGE_WRITE_COMPRESS = 1 << 5 , /* -W--- */
127+ ZIO_STAGE_READ_BP_INIT = 1 << 1 , /* R----- */
128+ ZIO_STAGE_WRITE_BP_INIT = 1 << 2 , /* -W---- */
129+ ZIO_STAGE_FREE_BP_INIT = 1 << 3 , /* --F--- */
130+ ZIO_STAGE_ISSUE_ASYNC = 1 << 4 , /* -WF--T */
131+ ZIO_STAGE_WRITE_COMPRESS = 1 << 5 , /* -W---- */
130132
131- ZIO_STAGE_ENCRYPT = 1 << 6 , /* -W--- */
132- ZIO_STAGE_CHECKSUM_GENERATE = 1 << 7 , /* -W--- */
133+ ZIO_STAGE_ENCRYPT = 1 << 6 , /* -W---- */
134+ ZIO_STAGE_CHECKSUM_GENERATE = 1 << 7 , /* -W---- */
133135
134- ZIO_STAGE_NOP_WRITE = 1 << 8 , /* -W--- */
136+ ZIO_STAGE_NOP_WRITE = 1 << 8 , /* -W---- */
135137
136- ZIO_STAGE_BRT_FREE = 1 << 9 , /* --F-- */
138+ ZIO_STAGE_BRT_FREE = 1 << 9 , /* --F--- */
137139
138- ZIO_STAGE_DDT_READ_START = 1 << 10 , /* R---- */
139- ZIO_STAGE_DDT_READ_DONE = 1 << 11 , /* R---- */
140- ZIO_STAGE_DDT_WRITE = 1 << 12 , /* -W--- */
141- ZIO_STAGE_DDT_FREE = 1 << 13 , /* --F-- */
140+ ZIO_STAGE_DDT_READ_START = 1 << 10 , /* R----- */
141+ ZIO_STAGE_DDT_READ_DONE = 1 << 11 , /* R----- */
142+ ZIO_STAGE_DDT_WRITE = 1 << 12 , /* -W---- */
143+ ZIO_STAGE_DDT_FREE = 1 << 13 , /* --F--- */
142144
143- ZIO_STAGE_GANG_ASSEMBLE = 1 << 14 , /* RWFC- */
144- ZIO_STAGE_GANG_ISSUE = 1 << 15 , /* RWFC- */
145+ ZIO_STAGE_GANG_ASSEMBLE = 1 << 14 , /* RWFC-- */
146+ ZIO_STAGE_GANG_ISSUE = 1 << 15 , /* RWFC-- */
145147
146- ZIO_STAGE_DVA_THROTTLE = 1 << 16 , /* -W--- */
147- ZIO_STAGE_DVA_ALLOCATE = 1 << 17 , /* -W--- */
148- ZIO_STAGE_DVA_FREE = 1 << 18 , /* --F-- */
149- ZIO_STAGE_DVA_CLAIM = 1 << 19 , /* ---C- */
148+ ZIO_STAGE_DVA_THROTTLE = 1 << 16 , /* -W---- */
149+ ZIO_STAGE_DVA_ALLOCATE = 1 << 17 , /* -W---- */
150+ ZIO_STAGE_DVA_FREE = 1 << 18 , /* --F--- */
151+ ZIO_STAGE_DVA_CLAIM = 1 << 19 , /* ---C-- */
150152
151- ZIO_STAGE_READY = 1 << 20 , /* RWFCI */
153+ ZIO_STAGE_READY = 1 << 20 , /* RWFCIT */
152154
153- ZIO_STAGE_VDEV_IO_START = 1 << 21 , /* RW--I */
154- ZIO_STAGE_VDEV_IO_DONE = 1 << 22 , /* RW--I */
155- ZIO_STAGE_VDEV_IO_ASSESS = 1 << 23 , /* RW--I */
155+ ZIO_STAGE_VDEV_IO_START = 1 << 21 , /* RW--IT */
156+ ZIO_STAGE_VDEV_IO_DONE = 1 << 22 , /* RW---T */
157+ ZIO_STAGE_VDEV_IO_ASSESS = 1 << 23 , /* RW--IT */
156158
157- ZIO_STAGE_CHECKSUM_VERIFY = 1 << 24 , /* R---- */
159+ ZIO_STAGE_CHECKSUM_VERIFY = 1 << 24 , /* R----- */
158160
159- ZIO_STAGE_DONE = 1 << 25 /* RWFCI */
161+ ZIO_STAGE_DONE = 1 << 25 /* RWFCIT */
160162};
161163
162164#define ZIO_ROOT_PIPELINE \
0 commit comments