Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src



Module Name:    src
Committed By:   thorpej
Date:           Wed Oct 20 03:08:19 UTC 2021

Modified Files:
        src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c
        src/lib/libc/sys: kqueue.2
        src/sys/coda: coda_vnops.c
        src/sys/fs/msdosfs: msdosfs_vnops.c
        src/sys/fs/nilfs: nilfs_vnops.c
        src/sys/fs/ptyfs: ptyfs_vnops.c
        src/sys/fs/puffs: puffs_vnops.c
        src/sys/fs/sysvbfs: sysvbfs_vnops.c
        src/sys/fs/tmpfs: tmpfs_rename.c tmpfs_subr.c tmpfs_vnops.c
        src/sys/fs/udf: udf_rename.c udf_vnops.c
        src/sys/fs/union: union_vnops.c
        src/sys/fs/unionfs: unionfs_vnops.c
        src/sys/fs/v7fs: v7fs_vnops.c
        src/sys/kern: vfs_vnode.c vfs_vnops.c vnode_if.sh vnode_if.src
        src/sys/miscfs/deadfs: dead_vnops.c
        src/sys/miscfs/genfs: genfs.h genfs_rename.c genfs_vnops.c
            layer_vnops.c
        src/sys/miscfs/umapfs: umap_vnops.c
        src/sys/nfs: nfs_bio.c nfs_kq.c nfs_vnops.c
        src/sys/rump/librump/rumpvfs: rumpfs.c
        src/sys/sys: event.h vnode.h
        src/sys/ufs/chfs: chfs_vnops.c
        src/sys/ufs/ext2fs: ext2fs_readwrite.c ext2fs_rename.c ext2fs_vnops.c
        src/sys/ufs/lfs: lfs_rename.c lfs_vnops.c ulfs_readwrite.c ulfs_vnops.c
        src/sys/ufs/ufs: ufs_acl.c ufs_extern.h ufs_readwrite.c ufs_rename.c
            ufs_vnops.c
        src/tests/kernel/kqueue: t_vnode.c

Log Message:
Overhaul of the EVFILT_VNODE kevent(2) filter:

- Centralize vnode kevent handling in the VOP_*() wrappers, rather than
  forcing each individual file system to deal with it (except VOP_RENAME(),
  because VOP_RENAME() is a mess and we currently have 2 different ways
  of handling it; at least it's reasonably well-centralized in the "new"
  way).
- Add support for NOTE_OPEN, NOTE_CLOSE, NOTE_CLOSE_WRITE, and NOTE_READ,
  compatible with the same events in FreeBSD.
- Track which kevent notifications clients are interested in receiving
  to avoid doing work for events no one cares about (avoiding, e.g.
  taking locks and traversing the klist to send a NOTE_WRITE when
  someone is merely watching for a file to be deleted, for example).

In support of the above:

- Add support in vnode_if.sh for specifying PRE- and POST-op handlers,
  to be invoked before and after vop_pre() and vop_post(), respectively.
  Basic idea from FreeBSD, but implemented differently.
- Add support in vnode_if.sh for specifying CONTEXT fields in the
  vop_*_args structures.  These context fields are used to convey information
  between the file system VOP function and the VOP wrapper, but do not
  occupy an argument slot in the VOP_*() call itself.  These context fields
  are initialized and subsequently interpreted by PRE- and POST-op handlers.
- Version VOP_REMOVE(), uses the a context field for the file system to report
  back the resulting link count of the target vnode.  Return this in tmpfs,
  udf, nfs, chfs, ext2fs, lfs, and ufs.

NetBSD 9.99.92.


To generate a diff of this commit:
cvs rdiff -u -r1.75 -r1.76 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
cvs rdiff -u -r1.54 -r1.55 src/lib/libc/sys/kqueue.2
cvs rdiff -u -r1.115 -r1.116 src/sys/coda/coda_vnops.c
cvs rdiff -u -r1.106 -r1.107 src/sys/fs/msdosfs/msdosfs_vnops.c
cvs rdiff -u -r1.44 -r1.45 src/sys/fs/nilfs/nilfs_vnops.c
cvs rdiff -u -r1.66 -r1.67 src/sys/fs/ptyfs/ptyfs_vnops.c
cvs rdiff -u -r1.222 -r1.223 src/sys/fs/puffs/puffs_vnops.c
cvs rdiff -u -r1.67 -r1.68 src/sys/fs/sysvbfs/sysvbfs_vnops.c
cvs rdiff -u -r1.10 -r1.11 src/sys/fs/tmpfs/tmpfs_rename.c
cvs rdiff -u -r1.113 -r1.114 src/sys/fs/tmpfs/tmpfs_subr.c
cvs rdiff -u -r1.147 -r1.148 src/sys/fs/tmpfs/tmpfs_vnops.c
cvs rdiff -u -r1.13 -r1.14 src/sys/fs/udf/udf_rename.c
cvs rdiff -u -r1.116 -r1.117 src/sys/fs/udf/udf_vnops.c
cvs rdiff -u -r1.78 -r1.79 src/sys/fs/union/union_vnops.c
cvs rdiff -u -r1.16 -r1.17 src/sys/fs/unionfs/unionfs_vnops.c
cvs rdiff -u -r1.31 -r1.32 src/sys/fs/v7fs/v7fs_vnops.c
cvs rdiff -u -r1.127 -r1.128 src/sys/kern/vfs_vnode.c
cvs rdiff -u -r1.223 -r1.224 src/sys/kern/vfs_vnops.c
cvs rdiff -u -r1.71 -r1.72 src/sys/kern/vnode_if.sh
cvs rdiff -u -r1.82 -r1.83 src/sys/kern/vnode_if.src
cvs rdiff -u -r1.65 -r1.66 src/sys/miscfs/deadfs/dead_vnops.c
cvs rdiff -u -r1.37 -r1.38 src/sys/miscfs/genfs/genfs.h
cvs rdiff -u -r1.5 -r1.6 src/sys/miscfs/genfs/genfs_rename.c
cvs rdiff -u -r1.215 -r1.216 src/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -u -r1.71 -r1.72 src/sys/miscfs/genfs/layer_vnops.c
cvs rdiff -u -r1.61 -r1.62 src/sys/miscfs/umapfs/umap_vnops.c
cvs rdiff -u -r1.199 -r1.200 src/sys/nfs/nfs_bio.c
cvs rdiff -u -r1.31 -r1.32 src/sys/nfs/nfs_kq.c
cvs rdiff -u -r1.320 -r1.321 src/sys/nfs/nfs_vnops.c
cvs rdiff -u -r1.165 -r1.166 src/sys/rump/librump/rumpvfs/rumpfs.c
cvs rdiff -u -r1.48 -r1.49 src/sys/sys/event.h
cvs rdiff -u -r1.297 -r1.298 src/sys/sys/vnode.h
cvs rdiff -u -r1.45 -r1.46 src/sys/ufs/chfs/chfs_vnops.c
cvs rdiff -u -r1.77 -r1.78 src/sys/ufs/ext2fs/ext2fs_readwrite.c
cvs rdiff -u -r1.11 -r1.12 src/sys/ufs/ext2fs/ext2fs_rename.c
cvs rdiff -u -r1.135 -r1.136 src/sys/ufs/ext2fs/ext2fs_vnops.c
cvs rdiff -u -r1.24 -r1.25 src/sys/ufs/lfs/lfs_rename.c
cvs rdiff -u -r1.339 -r1.340 src/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -u -r1.27 -r1.28 src/sys/ufs/lfs/ulfs_readwrite.c
cvs rdiff -u -r1.54 -r1.55 src/sys/ufs/lfs/ulfs_vnops.c
cvs rdiff -u -r1.2 -r1.3 src/sys/ufs/ufs/ufs_acl.c
cvs rdiff -u -r1.87 -r1.88 src/sys/ufs/ufs/ufs_extern.h
cvs rdiff -u -r1.126 -r1.127 src/sys/ufs/ufs/ufs_readwrite.c
cvs rdiff -u -r1.13 -r1.14 src/sys/ufs/ufs/ufs_rename.c
cvs rdiff -u -r1.259 -r1.260 src/sys/ufs/ufs/ufs_vnops.c
cvs rdiff -u -r1.1 -r1.2 src/tests/kernel/kqueue/t_vnode.c

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




Home | Main Index | Thread Index | Old Index