]> git.proxmox.com Git - mirror_zfs.git/blobdiff - include/sys/zio.h
Pool allocation classes
[mirror_zfs.git] / include / sys / zio.h
index 6c0c682a8f07ece4618e215490f8178455a66bb0..3220066494dbe3013549a95078619b0383ebb72a 100644 (file)
@@ -22,7 +22,7 @@
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
- * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2018 by Delphix. All rights reserved.
  * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
  * Copyright (c) 2013, Joyent, Inc. All rights reserved.
  * Copyright 2016 Toomas Soome <tsoome@me.com>
@@ -262,7 +262,7 @@ enum zio_child {
 #define        ZIO_CHILD_DDT_BIT               ZIO_CHILD_BIT(ZIO_CHILD_DDT)
 #define        ZIO_CHILD_LOGICAL_BIT           ZIO_CHILD_BIT(ZIO_CHILD_LOGICAL)
 #define        ZIO_CHILD_ALL_BITS                                      \
-       (ZIO_CHILD_VDEV_BIT | ZIO_CHILD_GANG_BIT |              \
+       (ZIO_CHILD_VDEV_BIT | ZIO_CHILD_GANG_BIT |              \
        ZIO_CHILD_DDT_BIT | ZIO_CHILD_LOGICAL_BIT)
 
 enum zio_wait_type {
@@ -353,6 +353,7 @@ typedef struct zio_prop {
        uint8_t                 zp_salt[ZIO_DATA_SALT_LEN];
        uint8_t                 zp_iv[ZIO_DATA_IV_LEN];
        uint8_t                 zp_mac[ZIO_DATA_MAC_LEN];
+       uint32_t                zp_zpl_smallblk;
 } zio_prop_t;
 
 typedef struct zio_cksum_report zio_cksum_report_t;
@@ -408,7 +409,7 @@ typedef struct zio_transform {
        struct zio_transform    *zt_next;
 } zio_transform_t;
 
-typedef int zio_pipe_stage_t(zio_t *zio);
+typedef zio_t *zio_pipe_stage_t(zio_t *zio);
 
 /*
  * The io_reexecute flags are distinct from io_flags because the child must
@@ -473,6 +474,7 @@ struct zio {
        vdev_t          *io_vd;
        void            *io_vsd;
        const zio_vsd_ops_t *io_vsd_ops;
+       metaslab_class_t *io_metaslab_class;    /* dva throttle class */
 
        uint64_t        io_offset;
        hrtime_t        io_timestamp;   /* submitted at */
@@ -507,6 +509,7 @@ struct zio {
        void            *io_waiter;
        kmutex_t        io_lock;
        kcondvar_t      io_cv;
+       int             io_allocator;
 
        /* FMA state */
        zio_cksum_report_t *io_cksum_report;