diff options
author | mav <mav@FreeBSD.org> | 2009-12-25 17:34:43 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2009-12-25 17:34:43 +0000 |
commit | e7ece2eefaa128d347aab6a4050958622f6876f6 (patch) | |
tree | 7730e9036ea83d3215fa4bc9f50399c2b347de5d /sys/dev/twe/twe_freebsd.c | |
parent | d5d0bbbb703d2e2ad6cf4820de8b305e85b6fd51 (diff) | |
download | FreeBSD-src-e7ece2eefaa128d347aab6a4050958622f6876f6.zip FreeBSD-src-e7ece2eefaa128d347aab6a4050958622f6876f6.tar.gz |
Teach twe driver to report array stripe size to GEOM.
Diffstat (limited to 'sys/dev/twe/twe_freebsd.c')
-rw-r--r-- | sys/dev/twe/twe_freebsd.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/twe/twe_freebsd.c b/sys/dev/twe/twe_freebsd.c index 9ad65c9..0328599 100644 --- a/sys/dev/twe/twe_freebsd.c +++ b/sys/dev/twe/twe_freebsd.c @@ -818,6 +818,13 @@ twed_attach(device_t dev) sc->twed_disk->d_maxsize = (TWE_MAX_SGL_LENGTH - 1) * PAGE_SIZE; sc->twed_disk->d_sectorsize = TWE_BLOCK_SIZE; sc->twed_disk->d_mediasize = TWE_BLOCK_SIZE * (off_t)sc->twed_drive->td_size; + if (sc->twed_drive->td_type == TWE_UD_CONFIG_RAID0 || + sc->twed_drive->td_type == TWE_UD_CONFIG_RAID5 || + sc->twed_drive->td_type == TWE_UD_CONFIG_RAID10) { + sc->twed_disk->d_stripesize = + TWE_BLOCK_SIZE << sc->twed_drive->td_stripe; + sc->twed_disk->d_stripeoffset = 0; + } sc->twed_disk->d_fwsectors = sc->twed_drive->td_sectors; sc->twed_disk->d_fwheads = sc->twed_drive->td_heads; sc->twed_disk->d_unit = sc->twed_drive->td_sys_unit; |