--- - branch: MAIN date: Sun Jul 18 23:56:14 UTC 2021 files: - new: '1.73' old: '1.72' path: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c pathrev: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c@1.73 type: modified - new: '1.60' old: '1.59' path: src/sys/fs/cd9660/cd9660_vnops.c pathrev: src/sys/fs/cd9660/cd9660_vnops.c@1.60 type: modified - new: '1.43' old: '1.42' path: src/sys/fs/efs/efs_vnops.c pathrev: src/sys/fs/efs/efs_vnops.c@1.43 type: modified - new: '1.39' old: '1.38' path: src/sys/fs/hfs/hfs_vnops.c pathrev: src/sys/fs/hfs/hfs_vnops.c@1.39 type: modified - new: '1.220' old: '1.219' path: src/sys/fs/puffs/puffs_vnops.c pathrev: src/sys/fs/puffs/puffs_vnops.c@1.220 type: modified - new: '1.14' old: '1.13' path: src/sys/fs/tmpfs/tmpfs_fifoops.c pathrev: src/sys/fs/tmpfs/tmpfs_fifoops.c@1.14 type: modified - new: '1.15' old: '1.14' path: src/sys/fs/tmpfs/tmpfs_specops.c pathrev: src/sys/fs/tmpfs/tmpfs_specops.c@1.15 type: modified - new: '1.9' old: '1.8' path: src/sys/fs/v7fs/v7fs_extern.c pathrev: src/sys/fs/v7fs/v7fs_extern.c@1.9 type: modified - new: '1.27' old: '1.26' path: src/sys/miscfs/fifofs/fifo.h pathrev: src/sys/miscfs/fifofs/fifo.h@1.27 type: modified - new: '1.171' old: '1.170' path: src/sys/miscfs/kernfs/kernfs_vnops.c pathrev: src/sys/miscfs/kernfs/kernfs_vnops.c@1.171 type: modified - new: '1.45' old: '1.44' path: src/sys/miscfs/specfs/specdev.h pathrev: src/sys/miscfs/specfs/specdev.h@1.45 type: modified - new: '1.319' old: '1.318' path: src/sys/nfs/nfs_vnops.c pathrev: src/sys/nfs/nfs_vnops.c@1.319 type: modified - new: '1.165' old: '1.164' path: src/sys/rump/librump/rumpvfs/rumpfs.c pathrev: src/sys/rump/librump/rumpvfs/rumpfs.c@1.165 type: modified - new: '1.45' old: '1.44' path: src/sys/ufs/chfs/chfs_vnops.c pathrev: src/sys/ufs/chfs/chfs_vnops.c@1.45 type: modified - new: '1.134' old: '1.133' path: src/sys/ufs/ext2fs/ext2fs_vnops.c pathrev: src/sys/ufs/ext2fs/ext2fs_vnops.c@1.134 type: modified - new: '1.136' old: '1.135' path: src/sys/ufs/ffs/ffs_vnops.c pathrev: src/sys/ufs/ffs/ffs_vnops.c@1.136 type: modified - new: '1.338' old: '1.337' path: src/sys/ufs/lfs/lfs_vnops.c pathrev: src/sys/ufs/lfs/lfs_vnops.c@1.338 type: modified id: 20210718T235614Z.da8dbf794f6085363647adb7f8f5c7b2201f6bc2 log: | Use macros for the canned parts of device and fifo vnode op tables. Add GENFS_SPECOP_ENTRIES and GENFS_FIFOOP_ENTRIES macros that contain the portion of the vnode ops table declaration that is (conservatively) the same in every fs. Use these in every fs that supports devices and/or fifos with separate ops tables. Note that ptyfs works differently (it has one type of vnode with open-coded dispatch to the specfs code, which I haven't changed in this commit) and rump/librump/rumpvfs/rumpfs.c has an indirect dynamic dispatch that already does more or less the same thing, which I also haven't changed. Also note that this anticipates a few bits in the next changeset here and there, and adds missing but unreachable calls in some cases (e.g. most fses weren't defining whiteout on devices and fifos, but it isn't reachable there), and it changes parsepath on devices and fifos to genfs_badop from genfs_parsepath (but it's not reachable there either). It appears that devices in kernfs were missing kqfilter, so it's possible that if you try to use kqueue on /kern/rootdev that it'll explode. And finally note that the ops declaration tables aren't order-dependent. (Other than vop_default_desc has to come first.) Otherwise this wouldn't work. module: src subject: 'CVS commit: src' unixtime: '1626652574' user: dholland