From: | Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx> |
Date: | Tue, 8 May 2007 17:53:36 -0700 (PDT) |
dillon 2007/05/08 17:53:36 PDT DragonFly src repository Modified files: sys/dev/disk/ata atapi-cd.c sys/dev/disk/nata atapi-cd.c sys/dev/raid/asr asr.c sys/dev/raid/vinum .gdbinit.kernel sys/dev/serial/sio sio.c sys/emulation/linux linux_misc.c sys/kern kern_conf.c kern_device.c kern_kinfo.c vfs_conf.c vfs_jops.c vfs_journal.c vfs_subr.c vfs_syscalls.c vfs_vnops.c sys/sys conf.h device.h journal.h kern_syscall.h vfscache.h vnode.h sys/vfs/fdesc fdesc_vnops.c sys/vfs/gnu/ext2fs ext2_vfsops.c ext2_vnops.c sys/vfs/hpfs hpfs_vfsops.c hpfs_vnops.c sys/vfs/isofs/cd9660 cd9660_vfsops.c cd9660_vnops.c sys/vfs/mfs mfs_vfsops.c mfs_vnops.c sys/vfs/msdosfs msdosfs_vfsops.c msdosfs_vnops.c sys/vfs/nfs nfs_serv.c nfs_subs.c nfs_vnops.c sys/vfs/ntfs ntfs_vfsops.c ntfs_vnops.c sys/vfs/nwfs nwfs_node.c sys/vfs/portal portal_vnops.c sys/vfs/smbfs smbfs_node.c sys/vfs/specfs spec_vnops.c sys/vfs/udf udf_vfsops.c udf_vnops.c sys/vfs/ufs ffs_vfsops.c ufs_vnops.c Log: Give the device major / minor numbers their own separate 32 bit fields in the kernel. Change dev_ops to use a RB tree to index major device numbers and remove the 256 device major number limitation. Build a dynamic major number assignment feature into dev_ops_add() and adjust ASR (which already had a hand-rolled one), and MFS to use the feature. MFS at least does not require any filesystem visibility to access its backing device. Major devices numbers >= 256 are used for dynamic assignment. Retain filesystem compatibility for device numbers that fall within the range that can be represented in UFS or struct stat (which is a single 32 bit field supporting 8 bit major numbers and 24 bit minor numbers). Revision Changes Path 1.29 +1 -1 src/sys/dev/disk/ata/atapi-cd.c 1.5 +1 -1 src/sys/dev/disk/nata/atapi-cd.c 1.29 +4 -25 src/sys/dev/raid/asr/asr.c 1.8 +3 -2 src/sys/dev/raid/vinum/.gdbinit.kernel 1.41 +0 -1 src/sys/dev/serial/sio/sio.c 1.38 +3 -1 src/sys/emulation/linux/linux_misc.c 1.23 +64 -30 src/sys/kern/kern_conf.c 1.24 +115 -39 src/sys/kern/kern_device.c 1.11 +1 -3 src/sys/kern/kern_kinfo.c 1.29 +52 -22 src/sys/kern/vfs_conf.c 1.34 +6 -2 src/sys/kern/vfs_jops.c 1.33 +6 -2 src/sys/kern/vfs_journal.c 1.104 +19 -13 src/sys/kern/vfs_subr.c 1.116 +8 -5 src/sys/kern/vfs_syscalls.c 1.50 +5 -3 src/sys/kern/vfs_vnops.c 1.18 +4 -4 src/sys/sys/conf.h 1.9 +14 -1 src/sys/sys/device.h 1.13 +2 -0 src/sys/sys/journal.h 1.36 +1 -1 src/sys/sys/kern_syscall.h 1.8 +2 -1 src/sys/sys/vfscache.h 1.75 +5 -3 src/sys/sys/vnode.h 1.37 +4 -2 src/sys/vfs/fdesc/fdesc_vnops.c 1.53 +1 -1 src/sys/vfs/gnu/ext2fs/ext2_vfsops.c 1.39 +11 -5 src/sys/vfs/gnu/ext2fs/ext2_vnops.c 1.41 +1 -1 src/sys/vfs/hpfs/hpfs_vfsops.c 1.41 +3 -2 src/sys/vfs/hpfs/hpfs_vnops.c 1.44 +3 -2 src/sys/vfs/isofs/cd9660/cd9660_vfsops.c 1.34 +2 -1 src/sys/vfs/isofs/cd9660/cd9660_vnops.c 1.40 +2 -4 src/sys/vfs/mfs/mfs_vfsops.c 1.35 +1 -1 src/sys/vfs/mfs/mfs_vnops.c 1.45 +1 -1 src/sys/vfs/msdosfs/msdosfs_vfsops.c 1.47 +5 -4 src/sys/vfs/msdosfs/msdosfs_vnops.c 1.43 +6 -8 src/sys/vfs/nfs/nfs_serv.c 1.46 +11 -7 src/sys/vfs/nfs/nfs_subs.c 1.71 +11 -9 src/sys/vfs/nfs/nfs_vnops.c 1.46 +2 -2 src/sys/vfs/ntfs/ntfs_vfsops.c 1.40 +2 -1 src/sys/vfs/ntfs/ntfs_vnops.c 1.26 +2 -1 src/sys/vfs/nwfs/nwfs_node.c 1.36 +2 -1 src/sys/vfs/portal/portal_vnops.c 1.24 +2 -1 src/sys/vfs/smbfs/smbfs_node.c 1.51 +5 -4 src/sys/vfs/specfs/spec_vnops.c 1.26 +1 -1 src/sys/vfs/udf/udf_vfsops.c 1.30 +2 -1 src/sys/vfs/udf/udf_vnops.c 1.54 +7 -4 src/sys/vfs/ufs/ffs_vfsops.c 1.60 +15 -5 src/sys/vfs/ufs/ufs_vnops.c http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ata/atapi-cd.c.diff?r1=1.28&r2=1.29&f=u http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/nata/atapi-cd.c.diff?r1=1.4&r2=1.5&f=u http://www.dragonflybsd.org/cvsweb/src/sys/dev/raid/asr/asr.c.diff?r1=1.28&r2=1.29&f=u http://www.dragonflybsd.org/cvsweb/src/sys/dev/raid/vinum/.gdbinit.kernel.diff?r1=1.7&r2=1.8&f=u http://www.dragonflybsd.org/cvsweb/src/sys/dev/serial/sio/sio.c.diff?r1=1.40&r2=1.41&f=u http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/linux_misc.c.diff?r1=1.37&r2=1.38&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_conf.c.diff?r1=1.22&r2=1.23&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_device.c.diff?r1=1.23&r2=1.24&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_kinfo.c.diff?r1=1.10&r2=1.11&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_conf.c.diff?r1=1.28&r2=1.29&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_jops.c.diff?r1=1.33&r2=1.34&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_journal.c.diff?r1=1.32&r2=1.33&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_subr.c.diff?r1=1.103&r2=1.104&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_syscalls.c.diff?r1=1.115&r2=1.116&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vnops.c.diff?r1=1.49&r2=1.50&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/conf.h.diff?r1=1.17&r2=1.18&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/device.h.diff?r1=1.8&r2=1.9&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/journal.h.diff?r1=1.12&r2=1.13&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/kern_syscall.h.diff?r1=1.35&r2=1.36&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/vfscache.h.diff?r1=1.7&r2=1.8&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/vnode.h.diff?r1=1.74&r2=1.75&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/fdesc/fdesc_vnops.c.diff?r1=1.36&r2=1.37&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/gnu/ext2fs/ext2_vfsops.c.diff?r1=1.52&r2=1.53&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/gnu/ext2fs/ext2_vnops.c.diff?r1=1.38&r2=1.39&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hpfs/hpfs_vfsops.c.diff?r1=1.40&r2=1.41&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hpfs/hpfs_vnops.c.diff?r1=1.40&r2=1.41&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_vfsops.c.diff?r1=1.43&r2=1.44&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_vnops.c.diff?r1=1.33&r2=1.34&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/mfs/mfs_vfsops.c.diff?r1=1.39&r2=1.40&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/mfs/mfs_vnops.c.diff?r1=1.34&r2=1.35&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_vfsops.c.diff?r1=1.44&r2=1.45&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_vnops.c.diff?r1=1.46&r2=1.47&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_serv.c.diff?r1=1.42&r2=1.43&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_subs.c.diff?r1=1.45&r2=1.46&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_vnops.c.diff?r1=1.70&r2=1.71&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ntfs/ntfs_vfsops.c.diff?r1=1.45&r2=1.46&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ntfs/ntfs_vnops.c.diff?r1=1.39&r2=1.40&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nwfs/nwfs_node.c.diff?r1=1.25&r2=1.26&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/portal/portal_vnops.c.diff?r1=1.35&r2=1.36&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/smbfs/smbfs_node.c.diff?r1=1.23&r2=1.24&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/specfs/spec_vnops.c.diff?r1=1.50&r2=1.51&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/udf/udf_vfsops.c.diff?r1=1.25&r2=1.26&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/udf/udf_vnops.c.diff?r1=1.29&r2=1.30&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ffs_vfsops.c.diff?r1=1.53&r2=1.54&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ufs_vnops.c.diff?r1=1.59&r2=1.60&f=u