mirror of
https://github.com/opnsense/src.git
synced 2026-02-14 00:04:14 -05:00
nullfs. The problem is that resulting vnode is only required to be held on return from the successfull call to vop, instead of being referenced. Nullfs VOP_INACTIVE() method reclaims the vnode, which in combination with the VOP_VPTOCNP() interface means that the directory vnode returned from VOP_VPTOCNP() is reclaimed in advance, causing vn_fullpath() to error with EBADF or like. Change the interface for VOP_VPTOCNP(), now the dvp must be referenced. Convert all in-tree implementations of VOP_VPTOCNP(), which is trivial, because vhold(9) and vref(9) are similar in the locking prerequisites. Out-of-tree fs implementation of VOP_VPTOCNP(), if any, should have no trouble with the fix. Tested by: pho Reviewed by: mckusick MFC after: 3 weeks (subject of re approval) |
||
|---|---|---|
| .. | ||
| devfs.h | ||
| devfs_devs.c | ||
| devfs_dir.c | ||
| devfs_int.h | ||
| devfs_rule.c | ||
| devfs_vfsops.c | ||
| devfs_vnops.c | ||