diff options
Diffstat (limited to 'sys/geom')
-rw-r--r-- | sys/geom/geom_disk.c | 12 | ||||
-rw-r--r-- | sys/geom/geom_disk.h | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/sys/geom/geom_disk.c b/sys/geom/geom_disk.c index 4cf3196..25d2e3b 100644 --- a/sys/geom/geom_disk.c +++ b/sys/geom/geom_disk.c @@ -305,6 +305,18 @@ g_disk_start(struct bio *bp) break; else if (g_handleattr_str(bp, "GEOM::ident", dp->d_ident)) break; + else if (g_handleattr(bp, "GEOM::hba_vendor", + &dp->d_hba_vendor, 2)) + break; + else if (g_handleattr(bp, "GEOM::hba_device", + &dp->d_hba_device, 2)) + break; + else if (g_handleattr(bp, "GEOM::hba_subvendor", + &dp->d_hba_subvendor, 2)) + break; + else if (g_handleattr(bp, "GEOM::hba_subdevice", + &dp->d_hba_subdevice, 2)) + break; else if (!strcmp(bp->bio_attribute, "GEOM::kerneldump")) g_disk_kerneldump(bp, dp); else diff --git a/sys/geom/geom_disk.h b/sys/geom/geom_disk.h index 5e9d1aa..01dd732 100644 --- a/sys/geom/geom_disk.h +++ b/sys/geom/geom_disk.h @@ -85,6 +85,10 @@ struct disk { u_int d_stripeoffset; u_int d_stripesize; char d_ident[DISK_IDENT_SIZE]; + uint16_t d_hba_vendor; + uint16_t d_hba_device; + uint16_t d_hba_subvendor; + uint16_t d_hba_subdevice; /* Fields private to the driver */ void *d_drv1; |