freebsd-nq/sys/fs
Poul-Henning Kamp 698bfad7f2 Now a dev_t is a pointer to struct specinfo which is shared by all specdev
vnodes referencing this device.

Details:
        cdevsw->d_parms has been removed, the specinfo is available
        now (== dev_t) and the driver should modify it directly
        when applicable, and the only driver doing so, does so:
        vn.c.  I am not sure the logic in checking for "<" was right
        before, and it looks even less so now.

        An intial pool of 50 struct specinfo are depleted during
        early boot, after that malloc had better work.  It is
        likely that fewer than 50 would do.

        Hashing is done from udev_t to dev_t with a prime number
        remainder hash, experiments show no better hash available
        for decent cost (MD5 is only marginally better)  The prime
        number used should not be close to a power of two, we use
        83 for now.

        Add new checkalias2() to get around the loss of info from
        dev2udev() in bdevvp();

        The aliased vnodes are hung on a list straight of the dev_t,
        and speclisth[SPECSZ] is unused.  The sharing of struct
        specinfo means that the v_specnext moves into the vnode
        which grows by 4 bytes.

        Don't use a VBLK dev_t which doesn't make sense in MFS, now
        we hang a dummy cdevsw on B/Cmaj 253 so that things look sane.

	Storage overhead from all of this is O(50k).

        Bump __FreeBSD_version to 400009

The next step will add the stuff needed so device-drivers can start to
hang things from struct specinfo
1999-07-20 09:47:55 +00:00
..
cd9660 I have not one single time remembered the name of this function correctly 1999-07-17 18:43:50 +00:00
coda Don't access the device with vp->v_specinfo->si_rdev, use vp->v_rdev. 1999-07-20 07:18:17 +00:00
deadfs Return ENOTTY instead of EBADF for ioctls on dead vnodes. This fixes 1998-11-22 09:19:07 +00:00
fdescfs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
fifofs Back out DIAGNOSTIC changes. 1998-02-06 12:14:30 +00:00
msdosfs move <sys/systm.h> before <sys/buf.h> 1999-07-01 22:12:39 +00:00
ntfs Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
nullfs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
portalfs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
procfs Allow jailed proccesses to open non-process vnodes like the root of the fs. 1999-07-09 21:31:44 +00:00
specfs Now a dev_t is a pointer to struct specinfo which is shared by all specdev 1999-07-20 09:47:55 +00:00
umapfs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00
unionfs Make sure that stat(2) and friends always return a valid st_dev field. 1999-07-02 16:29:47 +00:00