History log of /netbsd/sys/coda/coda_vnops.c (Results 1 – 25 of 118)
Revision Date Author Comments
# 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


12345