#
78328d4c |
| 27-Mar-2022 |
christos <christos@NetBSD.org> |
add a kauth vnode check for creating links
|
#
d07a9971 |
| 05-Dec-2021 |
msaitoh <msaitoh@NetBSD.org> |
s/sybolic/symbolic/ in comment.
|
#
8abbca48 |
| 20-Oct-2021 |
thorpej <thorpej@NetBSD.org> |
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(), b
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.
show more ...
|
#
18a3dc4f |
| 29-Jun-2021 |
dholland <dholland@NetBSD.org> |
- Add a new vnode op: VOP_PARSEPATH. - Move namei_getcomponent to genfs_vnops.c and call it genfs_parsepath. - Add a parsepath entry to every vnode ops table.
VOP_PARSEPATH takes a directory vnode
- Add a new vnode op: VOP_PARSEPATH. - Move namei_getcomponent to genfs_vnops.c and call it genfs_parsepath. - Add a parsepath entry to every vnode ops table.
VOP_PARSEPATH takes a directory vnode to be searched and a complete following path and chooses how much of that path to consume. To begin with, all parsepath calls are genfs_parsepath, which locates the first '/' as always.
Note that the call doesn't take the whole struct componentname, only the string. The other bits of struct componentname should not be needed and there's no reason to cause potential complications by exposing them.
show more ...
|
#
bb7a538e |
| 14-Nov-2020 |
hannken <hannken@NetBSD.org> |
Rewrite coda_readdir() to directly process the container file.
Passing this operation down to the file system holding the container cannot work for anything but UFS and UFS doesn't allow reading dir
Rewrite coda_readdir() to directly process the container file.
Passing this operation down to the file system holding the container cannot work for anything but UFS and UFS doesn't allow reading directory from a plain file since ~2015.
Fixes PR kern/55775 Coda client, its in-kernel part, opens wrong files ...
show more ...
|
#
c4aed100 |
| 14-Nov-2020 |
hannken <hannken@NetBSD.org> |
Add coda_pathconf() always returning EINVAL.
|
#
b9c1fd7f |
| 16-May-2020 |
christos <christos@NetBSD.org> |
Add ACL support for FFS. From FreeBSD.
|
#
044036dd |
| 13-Apr-2020 |
ad <ad@NetBSD.org> |
Replace most uses of vp->v_usecount with a call to vrefcnt(vp), a function that hides the details and does atomic_load_relaxed(). Signature matches FreeBSD.
|
#
abb89ee0 |
| 24-Feb-2020 |
ad <ad@NetBSD.org> |
v_interlock -> vmobjloc
|
#
b4dac182 |
| 23-Feb-2020 |
ad <ad@NetBSD.org> |
UVM locking changes, proposed on tech-kern:
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock. - Break v_interlock and vmobjlock apart. v_interlock remains a mutex. - Do partial
UVM locking changes, proposed on tech-kern:
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock. - Break v_interlock and vmobjlock apart. v_interlock remains a mutex. - Do partial PV list locking in the x86 pmap. Others to follow later.
show more ...
|
#
02443708 |
| 17-Jan-2020 |
ad <ad@NetBSD.org> |
VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
#
75f154b8 |
| 20-Nov-2018 |
christos <christos@NetBSD.org> |
Fix locking for readdir code (Brett Lymn)
|
#
8320c7e7 |
| 26-May-2017 |
riastradh <riastradh@NetBSD.org> |
Make VOP_RECLAIM do the last unlock of the vnode.
VOP_RECLAIM naturally has exclusive access to the vnode, so having it locked on entry is not strictly necessary -- but it means if there are any fin
Make VOP_RECLAIM do the last unlock of the vnode.
VOP_RECLAIM naturally has exclusive access to the vnode, so having it locked on entry is not strictly necessary -- but it means if there are any final operations that must be done on the vnode, such as ffs_update, requiring exclusive access to it, we can now kassert that the vnode is locked in those operations.
We can't just have the caller release the last lock because some file systems don't use genfs_lock, and require the vnode to remain valid for VOP_UNLOCK to work, notably unionfs.
show more ...
|
#
d98376cb |
| 26-Apr-2017 |
riastradh <riastradh@NetBSD.org> |
Change VOP_REMOVE and VOP_RMDIR to preserve lock/ref on dvp.
No change to vp -- the plan is to replace the node by the componentname in the vop parameters, and let all directory vops do lookups inte
Change VOP_REMOVE and VOP_RMDIR to preserve lock/ref on dvp.
No change to vp -- the plan is to replace the node by the componentname in the vop parameters, and let all directory vops do lookups internally.
Proposed on tech-kern with no objections: https://mail-index.netbsd.org/tech-kern/2017/04/17/msg021825.html
show more ...
|
#
dbfbfc16 |
| 11-Apr-2017 |
riastradh <riastradh@NetBSD.org> |
Make VOP_INACTIVE preserve vnode lock on return.
Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2017/04/01/msg021751.html
Ride 7.99.68, a bumpy bus of incremental vfs improvements!
|
#
c5758170 |
| 20-Aug-2016 |
hannken <hannken@NetBSD.org> |
Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
#
22e6abc9 |
| 20-Apr-2015 |
riastradh <riastradh@NetBSD.org> |
Make VOP_LINK return directory still locked and referenced.
Ride 7.99.10 bump.
|
#
9d8880a1 |
| 13-Dec-2014 |
hannken <hannken@NetBSD.org> |
Change coda from hashlist to vcache. - Replace all hash list crawlers with vfs_vnode_iterator.
|
#
94b13970 |
| 13-Dec-2014 |
hannken <hannken@NetBSD.org> |
Remove cnodes from coda_reclaim(), not from coda_inactive().
|
#
8bfadf15 |
| 13-Dec-2014 |
hannken <hannken@NetBSD.org> |
Attach the control object vnode to the coda mount and release it on unmount. Initialize special files with NODEV.
|
#
7d1220ac |
| 18-Oct-2014 |
snj <snj@NetBSD.org> |
src is too big these days to tolerate superfluous apostrophes. It's "its", people!
|
#
2eeb61fd |
| 25-Jul-2014 |
dholland <dholland@NetBSD.org> |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate a
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
show more ...
|
#
97615f89 |
| 20-Mar-2014 |
skrll <skrll@NetBSD.org> |
Mechanically replace simplelock with kmutex_t.
|
#
a72e818c |
| 27-Feb-2014 |
hannken <hannken@NetBSD.org> |
The current implementation of vn_lock() is racy. Modification of the vnode operations vector for active vnodes is unsafe because it is not known whether deadfs or the original file system will be ca
The current implementation of vn_lock() is racy. Modification of the vnode operations vector for active vnodes is unsafe because it is not known whether deadfs or the original file system will be called.
- Pass down LK_RETRY to the lock operation (hint for deadfs only).
- Change deadfs lock operation to return ENOENT if LK_RETRY is unset.
- Change all other lock operations to check for dead vnode once the vnode is locked and unlock and return ENOENT in this case.
With these changes in place vnode lock operations will never succeed after vclean() has marked the vnode as VI_XLOCK and before vclean() has changed the operations vector.
Adresses PR kern/37706 (Forced unmount of file systems is unsafe)
Discussed on tech-kern.
Welcome to 6.99.33
show more ...
|
#
55cd8e93 |
| 07-Feb-2014 |
hannken <hannken@NetBSD.org> |
Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|