diff options
author | phk <phk@FreeBSD.org> | 2003-03-03 13:05:00 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-03-03 13:05:00 +0000 |
commit | 7499df545729c9d91d2eabb72e479a6cd3e09fab (patch) | |
tree | ebeb4dc8a6258d6e27bf80318a7c535c404b73c1 /sys/dev/md | |
parent | 8a0180038b858afdb5efab37fccdc9cd13a552e9 (diff) | |
download | FreeBSD-src-7499df545729c9d91d2eabb72e479a6cd3e09fab.zip FreeBSD-src-7499df545729c9d91d2eabb72e479a6cd3e09fab.tar.gz |
Add a "-S sectorsize" option to enable Kirk to find a bug :-)
Diffstat (limited to 'sys/dev/md')
-rw-r--r-- | sys/dev/md/md.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c index c03d10e..7b754cb 100644 --- a/sys/dev/md/md.c +++ b/sys/dev/md/md.c @@ -746,6 +746,8 @@ mdcreate_malloc(struct md_ioctl *mdio) return (EINVAL); if (mdio->md_options & ~(MD_AUTOUNIT | MD_COMPRESS | MD_RESERVE)) return (EINVAL); + if (mdio->md_secsize != 0 && !powerof2(mdio->md_secsize)) + return (EINVAL); /* Compression doesn't make sense if we have reserved space */ if (mdio->md_options & MD_RESERVE) mdio->md_options &= ~MD_COMPRESS; @@ -760,8 +762,12 @@ mdcreate_malloc(struct md_ioctl *mdio) return (EBUSY); } sc->type = MD_MALLOC; - sc->secsize = DEV_BSIZE; + if (mdio->md_secsize != 0) + sc->secsize = mdio->md_secsize; + else + sc->secsize = DEV_BSIZE; sc->nsect = mdio->md_size; + sc->nsect /= (sc->secsize / DEV_BSIZE); sc->flags = mdio->md_options & (MD_COMPRESS | MD_FORCE); sc->indir = dimension(sc->nsect); sc->uma = uma_zcreate(sc->name, sc->secsize, |