diff options
Diffstat (limited to 'sys/geom/raid3/g_raid3.h')
-rw-r--r-- | sys/geom/raid3/g_raid3.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/sys/geom/raid3/g_raid3.h b/sys/geom/raid3/g_raid3.h index 2f40ddd..c936710 100644 --- a/sys/geom/raid3/g_raid3.h +++ b/sys/geom/raid3/g_raid3.h @@ -39,8 +39,9 @@ * Version history: * 0 - Initial version number. * 1 - Added 'round-robin reading' algorithm. + * 2 - Added 'verify reading' algorithm. */ -#define G_RAID3_VERSION 1 +#define G_RAID3_VERSION 2 #define G_RAID3_DISK_FLAG_DIRTY 0x0000000000000001ULL #define G_RAID3_DISK_FLAG_SYNCHRONIZING 0x0000000000000002ULL @@ -52,8 +53,10 @@ #define G_RAID3_DEVICE_FLAG_NOAUTOSYNC 0x0000000000000001ULL #define G_RAID3_DEVICE_FLAG_ROUND_ROBIN 0x0000000000000002ULL +#define G_RAID3_DEVICE_FLAG_VERIFY 0x0000000000000004ULL #define G_RAID3_DEVICE_FLAG_MASK (G_RAID3_DEVICE_FLAG_NOAUTOSYNC | \ - G_RAID3_DEVICE_FLAG_ROUND_ROBIN) + G_RAID3_DEVICE_FLAG_ROUND_ROBIN | \ + G_RAID3_DEVICE_FLAG_VERIFY) #ifdef _KERNEL extern u_int g_raid3_debug; @@ -88,9 +91,18 @@ extern u_int g_raid3_debug; #define G_RAID3_BIO_CFLAG_PARITY 0x04 #define G_RAID3_BIO_CFLAG_NODISK 0x08 #define G_RAID3_BIO_CFLAG_REGSYNC 0x10 +#define G_RAID3_BIO_CFLAG_MASK (G_RAID3_BIO_CFLAG_REGULAR | \ + G_RAID3_BIO_CFLAG_SYNC | \ + G_RAID3_BIO_CFLAG_PARITY | \ + G_RAID3_BIO_CFLAG_NODISK | \ + G_RAID3_BIO_CFLAG_REGSYNC) #define G_RAID3_BIO_PFLAG_DEGRADED 0x01 #define G_RAID3_BIO_PFLAG_NOPARITY 0x02 +#define G_RAID3_BIO_PFLAG_VERIFY 0x04 +#define G_RAID3_BIO_PFLAG_MASK (G_RAID3_BIO_PFLAG_DEGRADED | \ + G_RAID3_BIO_PFLAG_NOPARITY | \ + G_RAID3_BIO_PFLAG_VERIFY) /* * Informations needed for synchronization. @@ -291,6 +303,8 @@ raid3_metadata_dump(const struct g_raid3_metadata *md) printf(" NOAUTOSYNC"); if ((md->md_mflags & G_RAID3_DEVICE_FLAG_ROUND_ROBIN) != 0) printf(" ROUND-ROBIN"); + if ((md->md_mflags & G_RAID3_DEVICE_FLAG_VERIFY) != 0) + printf(" VERIFY"); } printf("\n"); printf(" dflags:"); |