Subject: CVS commit: [thorpej-devvp] syssrc/sys
To: None <source-changes@netbsd.org>
From: Frank van der Linden <fvdl@netbsd.org>
List: source-changes
Date: 09/26/2001 18:28:28
Module Name:	syssrc
Committed By:	fvdl
Date:		Wed Sep 26 15:28:28 UTC 2001

Modified Files:
	syssrc/sys/adosfs [thorpej-devvp]: advfsops.c
	syssrc/sys/arch/alpha/alpha [thorpej-devvp]: promcons.c
	syssrc/sys/arch/alpha/tc [thorpej-devvp]: scc.c
	syssrc/sys/arch/dreamcast/dreamcast [thorpej-devvp]: autoconf.c
	syssrc/sys/arch/evbsh3/evbsh3 [thorpej-devvp]: autoconf.c
	syssrc/sys/arch/i386/i386 [thorpej-devvp]: autoconf.c
	syssrc/sys/arch/i386/isa [thorpej-devvp]: joy.c
	syssrc/sys/arch/mmeye/mmeye [thorpej-devvp]: autoconf.c
	syssrc/sys/arch/x86_64/x86_64 [thorpej-devvp]: autoconf.c
	syssrc/sys/coda [thorpej-devvp]: coda_psdev.c coda_vnops.c
	syssrc/sys/compat/sunos [thorpej-devvp]: sunos_misc.c
	syssrc/sys/compat/sunos32 [thorpej-devvp]: sunos32_misc.c
	syssrc/sys/compat/svr4 [thorpej-devvp]: svr4_fcntl.c
	syssrc/sys/compat/svr4_32 [thorpej-devvp]: svr4_32_fcntl.c
	syssrc/sys/dev [thorpej-devvp]: audio.c ccd.c cons.c ld.c md.c midi.c
	    sequencer.c vnd.c
	syssrc/sys/dev/ata [thorpej-devvp]: wd.c
	syssrc/sys/dev/i2o [thorpej-devvp]: iop.c
	syssrc/sys/dev/ic [thorpej-devvp]: com.c cy.c lpt.c mlx.c rrunner.c
	    z8530tty.c
	syssrc/sys/dev/isa [thorpej-devvp]: fd.c
	syssrc/sys/dev/mca [thorpej-devvp]: ed_mca.c
	syssrc/sys/dev/pci [thorpej-devvp]: cz.c mly.c
	syssrc/sys/dev/pci/bktr [thorpej-devvp]: bktr_os.c
	syssrc/sys/dev/raidframe [thorpej-devvp]: rf_netbsdkintf.c
	syssrc/sys/dev/scsipi [thorpej-devvp]: cd.c ch.c if_se.c scsiconf.c
	    sd.c ses.c ss.c st.c uk.c
	syssrc/sys/dev/usb [thorpej-devvp]: ucom.c ugen.c uhid.c ulpt.c urio.c
	    uscanner.c
	syssrc/sys/dev/wscons [thorpej-devvp]: wsdisplay.c wskbd.c wsmouse.c
	    wsmux.c
	syssrc/sys/filecorefs [thorpej-devvp]: filecore_vfsops.c
	syssrc/sys/isofs/cd9660 [thorpej-devvp]: cd9660_vfsops.c
	syssrc/sys/kern [thorpej-devvp]: kern_exit.c tty.c tty_pty.c vfs_subr.c
	    vfs_syscalls.c
	syssrc/sys/miscfs/genfs [thorpej-devvp]: genfs_vnops.c
	syssrc/sys/miscfs/procfs [thorpej-devvp]: procfs_subr.c
	syssrc/sys/miscfs/specfs [thorpej-devvp]: spec_vnops.c specdev.h
	syssrc/sys/msdosfs [thorpej-devvp]: msdosfs_vfsops.c
	syssrc/sys/net [thorpej-devvp]: bpf.c if_tun.c
	syssrc/sys/ntfs [thorpej-devvp]: ntfs_vfsops.c
	syssrc/sys/sys [thorpej-devvp]: vnode.h vnode_if.h
	syssrc/sys/ufs/ext2fs [thorpej-devvp]: ext2fs_vfsops.c
	syssrc/sys/ufs/ffs [thorpej-devvp]: ffs_vfsops.c
	syssrc/sys/ufs/lfs [thorpej-devvp]: lfs_vfsops.c

Log Message:
* add a VCLONED vnode flag that indicates a vnode representing a cloned
  device.
* rename REVOKEALL to REVOKEALIAS, and add a REVOKECLONE flag, to pass
  to VOP_REVOKE
* the revoke system call will revoke all aliases, as before, but not the
  clones
* vdevgone is called when detaching a device, so make it use REVOKECLONE
  to get rid of all clones as well
* clean up all uses of VOP_OPEN wrt. locking.
* add a few VOPS to spec_vnops that need to do something when it's a
  clone vnode (access and getattr)
* add a copy of the vnode vattr structure of the original 'master' vnode
  to the specinfo of a cloned vnode. could possibly redirect getattr to
  the 'master' vnode, but this has issues with revoke
* add a vdev_reassignvp function that disassociates a vnode from its
  original device, and reassociates it with the specified dev_t. to be
  used by cloning devices only, in case a new minor is allocated.
* change all direct references in drivers to v_devcookie and v_rdev
  to vdev_privdata(vp) and vdev_rdev(vp). for diagnostic purposes
  when debugging race conditions that still exist wrt. locking and
  revoking vnodes.
* make the locking state of a vnode consistent when passed to
  d_open and d_close (unlocked). locked would be better, but has
  some deadlock issues


To generate a diff of this commit:
cvs rdiff -r1.46.4.1 -r1.46.4.2 syssrc/sys/adosfs/advfsops.c
cvs rdiff -r1.18.6.1 -r1.18.6.2 syssrc/sys/arch/alpha/alpha/promcons.c
cvs rdiff -r1.57.2.1 -r1.57.2.2 syssrc/sys/arch/alpha/tc/scc.c
cvs rdiff -r1.1.4.1 -r1.1.4.2 syssrc/sys/arch/dreamcast/dreamcast/autoconf.c
cvs rdiff -r1.1.4.1 -r1.1.4.2 syssrc/sys/arch/evbsh3/evbsh3/autoconf.c
cvs rdiff -r1.56.4.1 -r1.56.4.2 syssrc/sys/arch/i386/i386/autoconf.c
cvs rdiff -r1.11.6.1 -r1.11.6.2 syssrc/sys/arch/i386/isa/joy.c
cvs rdiff -r1.1.4.1 -r1.1.4.2 syssrc/sys/arch/mmeye/mmeye/autoconf.c
cvs rdiff -r1.1.4.1 -r1.1.4.2 syssrc/sys/arch/x86_64/x86_64/autoconf.c
cvs rdiff -r1.17.2.1 -r1.17.2.2 syssrc/sys/coda/coda_psdev.c
cvs rdiff -r1.26.2.1 -r1.26.2.2 syssrc/sys/coda/coda_vnops.c
cvs rdiff -r1.110 -r1.110.4.1 syssrc/sys/compat/sunos/sunos_misc.c
cvs rdiff -r1.9 -r1.9.4.1 syssrc/sys/compat/sunos32/sunos32_misc.c
cvs rdiff -r1.37 -r1.37.4.1 syssrc/sys/compat/svr4/svr4_fcntl.c
cvs rdiff -r1.2 -r1.2.4.1 syssrc/sys/compat/svr4_32/svr4_32_fcntl.c
cvs rdiff -r1.138.2.1 -r1.138.2.2 syssrc/sys/dev/audio.c
cvs rdiff -r1.73.2.1 -r1.73.2.2 syssrc/sys/dev/ccd.c
cvs rdiff -r1.40.4.3 -r1.40.4.4 syssrc/sys/dev/cons.c
cvs rdiff -r1.11.2.1 -r1.11.2.2 syssrc/sys/dev/ld.c
cvs rdiff -r1.26.4.1 -r1.26.4.2 syssrc/sys/dev/md.c
cvs rdiff -r1.21.6.1 -r1.21.6.2 syssrc/sys/dev/midi.c
cvs rdiff -r1.16.2.3 -r1.16.2.4 syssrc/sys/dev/sequencer.c
cvs rdiff -r1.72.4.1 -r1.72.4.2 syssrc/sys/dev/vnd.c
cvs rdiff -r1.214.4.2 -r1.214.4.3 syssrc/sys/dev/ata/wd.c
cvs rdiff -r1.16.2.1 -r1.16.2.2 syssrc/sys/dev/i2o/iop.c
cvs rdiff -r1.188.2.2 -r1.188.2.3 syssrc/sys/dev/ic/com.c
cvs rdiff -r1.23.4.1 -r1.23.4.2 syssrc/sys/dev/ic/cy.c
cvs rdiff -r1.57.6.1 -r1.57.6.2 syssrc/sys/dev/ic/lpt.c
cvs rdiff -r1.13.2.1 -r1.13.2.2 syssrc/sys/dev/ic/mlx.c
cvs rdiff -r1.27.2.1 -r1.27.2.2 syssrc/sys/dev/ic/rrunner.c
cvs rdiff -r1.77.4.1 -r1.77.4.2 syssrc/sys/dev/ic/z8530tty.c
cvs rdiff -r1.18.4.1 -r1.18.4.2 syssrc/sys/dev/isa/fd.c
cvs rdiff -r1.8.2.1 -r1.8.2.2 syssrc/sys/dev/mca/ed_mca.c
cvs rdiff -r1.16.4.1 -r1.16.4.2 syssrc/sys/dev/pci/cz.c
cvs rdiff -r1.7.4.1 -r1.7.4.2 syssrc/sys/dev/pci/mly.c
cvs rdiff -r1.19.4.1 -r1.19.4.2 syssrc/sys/dev/pci/bktr/bktr_os.c
cvs rdiff -r1.109.2.2 -r1.109.2.3 syssrc/sys/dev/raidframe/rf_netbsdkintf.c
cvs rdiff -r1.157.2.1 -r1.157.2.2 syssrc/sys/dev/scsipi/cd.c
cvs rdiff -r1.47.2.1 -r1.47.2.2 syssrc/sys/dev/scsipi/ch.c
cvs rdiff -r1.37.2.1 -r1.37.2.2 syssrc/sys/dev/scsipi/if_se.c
cvs rdiff -r1.161.2.1 -r1.161.2.2 syssrc/sys/dev/scsipi/scsiconf.c
cvs rdiff -r1.178.2.1 -r1.178.2.2 syssrc/sys/dev/scsipi/sd.c
cvs rdiff -r1.11.2.1 -r1.11.2.2 syssrc/sys/dev/scsipi/ses.c
cvs rdiff -r1.36.2.1 -r1.36.2.2 syssrc/sys/dev/scsipi/ss.c
cvs rdiff -r1.143.2.1 -r1.143.2.2 syssrc/sys/dev/scsipi/st.c
cvs rdiff -r1.30.4.1 -r1.30.4.2 syssrc/sys/dev/scsipi/uk.c
cvs rdiff -r1.39.2.1 -r1.39.2.2 syssrc/sys/dev/usb/ucom.c
cvs rdiff -r1.45.6.1 -r1.45.6.2 syssrc/sys/dev/usb/ugen.c
cvs rdiff -r1.43.2.1 -r1.43.2.2 syssrc/sys/dev/usb/uhid.c
cvs rdiff -r1.42.4.1 -r1.42.4.2 syssrc/sys/dev/usb/ulpt.c
cvs rdiff -r1.5.8.1 -r1.5.8.2 syssrc/sys/dev/usb/urio.c
cvs rdiff -r1.15.4.1 -r1.15.4.2 syssrc/sys/dev/usb/uscanner.c
cvs rdiff -r1.52.2.1 -r1.52.2.2 syssrc/sys/dev/wscons/wsdisplay.c
cvs rdiff -r1.42.2.1 -r1.42.2.2 syssrc/sys/dev/wscons/wskbd.c
cvs rdiff -r1.13.6.1 -r1.13.6.2 syssrc/sys/dev/wscons/wsmouse.c
cvs rdiff -r1.9.8.3 -r1.9.8.4 syssrc/sys/dev/wscons/wsmux.c
cvs rdiff -r1.14.4.1 -r1.14.4.2 syssrc/sys/filecorefs/filecore_vfsops.c
cvs rdiff -r1.56.4.1 -r1.56.4.2 syssrc/sys/isofs/cd9660/cd9660_vfsops.c
cvs rdiff -r1.91 -r1.91.2.1 syssrc/sys/kern/kern_exit.c
cvs rdiff -r1.128.4.2 -r1.128.4.3 syssrc/sys/kern/tty.c
cvs rdiff -r1.56.4.1 -r1.56.4.2 syssrc/sys/kern/tty_pty.c
cvs rdiff -r1.156.2.3 -r1.156.2.4 syssrc/sys/kern/vfs_subr.c
cvs rdiff -r1.168.2.1 -r1.168.2.2 syssrc/sys/kern/vfs_syscalls.c
cvs rdiff -r1.36.2.1 -r1.36.2.2 syssrc/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -r1.37 -r1.37.4.1 syssrc/sys/miscfs/procfs/procfs_subr.c
cvs rdiff -r1.56.2.2 -r1.56.2.3 syssrc/sys/miscfs/specfs/spec_vnops.c
cvs rdiff -r1.20.2.2 -r1.20.2.3 syssrc/sys/miscfs/specfs/specdev.h
cvs rdiff -r1.74.4.1 -r1.74.4.2 syssrc/sys/msdosfs/msdosfs_vfsops.c
cvs rdiff -r1.61.4.1 -r1.61.4.2 syssrc/sys/net/bpf.c
cvs rdiff -r1.45.2.1 -r1.45.2.2 syssrc/sys/net/if_tun.c
cvs rdiff -r1.36.4.1 -r1.36.4.2 syssrc/sys/ntfs/ntfs_vfsops.c
cvs rdiff -r1.91.4.1 -r1.91.4.2 syssrc/sys/sys/vnode.h
cvs rdiff -r1.36.4.1 -r1.36.4.2 syssrc/sys/sys/vnode_if.h
cvs rdiff -r1.43.6.1 -r1.43.6.2 syssrc/sys/ufs/ext2fs/ext2fs_vfsops.c
cvs rdiff -r1.85.2.1 -r1.85.2.2 syssrc/sys/ufs/ffs/ffs_vfsops.c
cvs rdiff -r1.66.2.1 -r1.66.2.2 syssrc/sys/ufs/lfs/lfs_vfsops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.