Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Dec 1997 08:39:24 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, toor@dyson.iquest.net
Cc:        cschuber@uumail.gov.bc.ca, dyson@FreeBSD.ORG, freebsd-bugs@hub.freebsd.org
Subject:   Re: kern/5355: Fix for NULLFS problems
Message-ID:  <199712262139.IAA28656@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>I think that the problem with specfs is that the default size is bogus.

There are several bogus defaults for specfs:
1) BLKDEV_IOSIZE = 2048.  Used for reads and writes to block-special
   devices if neither 2) nor 3) applies.  Also returned by stat() in
   st_blksize to advise user processes about the "best" block size to
   use.  Usually too small.
2) dpart.part->p_frag * dpart.part->p_fsize, where dpart.part is a pointer
   to a partition table entry.  Used for reads and writes to block-special
   devices if it is nonzero, the partition type is FS_BSDFS, and 3)
   doesn't apply.  Only works right for partitions with unmounted BSD file
   systems on them.
3) vp->v_mount->mnt_stat.f_iosize, where vp->v_mount is a pointer to the
   mount struct for the file system containing the inode for the special
   file.  Used for clustered writes to blockspecial devices under certain
   conditions.  Never actually used, since spec_bmap() always returns a
   run length of 0.  Completely bogus.
4) MAXBSIZE = 65536.  Returned by stat() in st_blksize to advise user
   processes about the "best" block size to use.  Usually too large -
   good sizes for disks and tapes are silly for terminals.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712262139.IAA28656>