Home | History | Annotate | Download | only in kern
History log of /src/sys/kern/vfs_trans.c
RevisionDateAuthorComments
 1.73  07-Dec-2024  riastradh vfs(9): Sprinkle SET_ERROR dtrace probes.

PR kern/58378: Kernel error code origination lacks dtrace probes
 1.72  07-Dec-2024  riastradh vfs(9): Fix some more whitespace issues.

No functional change intended.
 1.71  07-Dec-2024  riastradh vfs(9): Sprinkle KNF.

No functional change intended.
 1.70  04-Nov-2022  hannken branches: 1.70.8;
Add a helper to set or clear lower mount and use it.
Always add a reference to the lower mount.

Ride 9.99.105
 1.69  26-Oct-2022  riastradh miscfs/deadfs/deadfs.h: New home for deadfs-related externs.

XXX regen sys/kern/vnode_if.c and the others
 1.68  22-Aug-2022  hannken Don't allocate lwp info for fstrans_held() and fstrans_is_owner().
If it doesn't exist we cannot hold a transaction or suspension.
 1.67  11-Aug-2022  hannken Finish previous, evaluate the lowest mount on first access
to "struct mount_info" and store it here so we no longer
derefence the "struct mount" from fstrans_alloc_lwp_info().

Reported-by: syzbot+5a79214d043395b550d8@syzkaller.appspotmail.com
 1.66  08-Jul-2022  hannken While one thread runs vgone() it is possible for another thread to grab
a "v_mount" that will be freed before it uses this mount for fstrans_start().

Add a hashtab to lookup our private mount data "fstrans_mount_info" and
use "mp" as an opaque key for lookup.

Reported-by: syzbot+54dc9ac0804a97b59bc6@syzkaller.appspotmail.com
 1.65  08-Jul-2022  hannken Handle IMNT_GONE on the file system we want suspended not its
lowest mount we really suspend.
 1.64  28-Jun-2022  riastradh fstrans(9): KASSERT(a && b) => KASSERT(a); KASSERT(b)

No functional change intended except better diagnostics in case of
crash.
 1.63  17-May-2020  ad Reorganise the locking and allocation of fstrans_lwp_info slightly, to
reduce contention. "please go ahead" hannken@.
 1.62  13-May-2020  hannken Add operation fstrans_held(struct mount *), true if the current thread
holds a fstrans lock.

Ride 9.99.61
 1.61  17-Jun-2019  hannken Add an owner field to fstrans mount info and use it to hold
the thread currently suspending this mount.

Remove now unneeded state FSTRANS_EXCL.

It is now possible to suspend a file system from a thread
already holding fstrans locks. Use with care ...
 1.60  13-May-2019  hannken Walk down to the lowest mount for "fli_alias".

Address PR kern/54195 (null mounts: panic: ...).
 1.59  15-Apr-2019  hannken Add reference counting to alias states to prevent them disappearing
while still in use.
 1.58  07-Mar-2019  hannken Change "fli_alias" to point to the corresponding "fstrans_lwp_info".

Fix fstrans_clear_lwp_info() list traversal, remove already advanced
the list pointer.
 1.57  01-Mar-2019  hannken Move pointer to fstrans private data into "struct lwp".

Ride NetBSD 8.99.35
 1.56  24-Feb-2019  hannken Clear per-lwp entries whose mount is gone before the first return
from fstrans_done().

No longer leaks "struct mount" forever.
 1.55  21-Feb-2019  hannken Fix bad assertion: vfs_suspend(dead_rootmount) may happen and
must return EOPNOTSUPP.
 1.54  20-Feb-2019  hannken - Make the fstrans mount info part of the per-lwp state and replace
most accesses to the mount with fstrans mount info.

- Add "fmi_gone" to be true after unmount and add a counter of
outstanding mount infos so fstrans_clear_lwp_info() only runs
if there may be something to do.

- Move lookup of base mounts into per-lwp state.

- Keep a list of valid mounts for DIAGNOSTIC checks.
 1.53  20-Feb-2019  hannken Move fstrans_unmount() to vfs_rele(), just before it would free the mount.
Don't take a mount reference for fstrans as it gets notified about the release.

Defer the final free of the mount to fstrans_mount_dtor() when fstrans
has released all references to this mount. Prevents the mount's memory
to be reused as a new mount before fstrans released all references.

Address PR kern/53928 modules/t_builtin:disable test case randomly fails.
 1.52  20-Feb-2019  hannken Attach "mnt_transinfo" to "dead_rootmount" so every mount has a
valid "mnt_transinfo" and remove now unneeded flag IMNT_HAS_TRANS.

Run fstrans_start()/fstrans_done() on dead_rootmount if FSTRANS_DEAD_ENABLED.
Should become the default for DIAGNOSTIC in the future.
 1.51  05-Oct-2018  hannken Bring back three state file system suspension:

NORMAL -> SUSPENDING -> SUSPENDED

and add operation fstrans_start_lazy() that only blocks while SUSPENDED.

Change vndthread() support operation handle_with_rdwr() to bracket
its file system operations by fstrans_start_lazy() and fstrans_done().

PR kern/53624 (dom0 freeze on domU exit)
 1.50  05-Oct-2018  manu Back out sftchg/fstcnt deadlock workaround

The change did prevent some system freeze, but caused spurious
unmount failures reporter by bouyer@.

hannken@ is working on the right fix, see kern/53624
 1.49  27-Sep-2018  manu Work around deadlock between fstchg and fstcnt

When suspending a filesystem in fstrans_setstate(), we wait on
fstcnt for threads to finish transactions. While we do this, any
thread trying to start a filesystem transaction will wait on fstchg
in fstrans_start(), a situation which can deadlock.

The wait for fstcnt in fstrans_setstate() can be interrupted by
a signal, but the wait for fstchg in fstrans_start() cannot. Once
most processes are stuck in fstchg, it is impossible to send a
signal to the thread that waits on fstcnt, because no process
respond anymore to user input.

We fix that by adding a timeout to the wait on fstcnt in
fstrans_setstate(). This means suspending a filesystem may fail,
but it was already the case when the sleep was interupted by
a signal, hence calling function must already handle a possible
failure.

Fixes kern/53624
 1.48  18-Jun-2017  hannken branches: 1.48.4; 1.48.6;
Make the fast path of fstrans_get_lwp_info() "static inline".
 1.47  18-Jun-2017  hannken Clear fstrans entries whose mount is gone from the last fstrans_done() only.
 1.46  04-Jun-2017  hannken Operations fstrans_start() and fstrans_start_nowait() now always
use FSTRANS_SHARED as lock type so remove the lock type argument.

File system state FSTRANS_SUSPENDING is now unused so remove it.

Regen vnode_if files.

Ride 8.99.1 less than a hour ago.
 1.45  07-May-2017  hannken branches: 1.45.2;
Move fstrans initialization to vfs_mountalloc().
 1.44  07-May-2017  hannken Handle the case where the mount is gone and its mnt_transinfo is NULL.
 1.43  17-Apr-2017  hannken branches: 1.43.2;
Remove unused argument "nextp" from vfs_busy() and vfs_unbusy().
Remove argument "keepref" from vfs_unbusy() and add vfs_ref() where needed.
 1.42  17-Apr-2017  hannken Add vfs_ref(mp) and vfs_rele(mp) to add or remove a reference to
struct mount. Rename vfs_destroy(mp) to vfs_rele(mp) and replace
incrementing mp->mnt_refcnt with vfs_ref(mp).
 1.41  12-Apr-2017  hannken Switch fstrans_dump() to _mountlist_next().
 1.40  30-Mar-2017  hannken Change _fstrans_start() to allocate per lwp info for layered file
systems to get a reference on the mount.

Set mnt_lower on successfull mount only.
 1.39  06-Mar-2017  hannken Always use the lowest mount for fstrans and suspend. This way we
enter/leave or suspend/resume the stack of layered file systems as a unit.
 1.38  02-Mar-2017  hannken Add an operation to test a mount for fstrans support and use it for
_fstrans_start(), fstrans_done(), fstrans_is_owner(), vfs_suspend()
and vfs_resume().

Test for fstrans support before ASSERT_SLEEPABLE().
 1.37  23-Feb-2017  hannken Test for fstrans support before trying to allocate per-thread info.

PR kern/51996 (kmem_alloc called from intr context in fstrans_get_lwp_info)
 1.36  17-Feb-2017  hannken Let syncer try fstrans_start() before running VFS_SYNC() to get rid
of the syncer lock/unlock from vfs_suspend().
 1.35  17-Feb-2017  hannken Protect attaching and detaching lwp_info to mount with a mutex.
 1.34  24-Aug-2015  pooka branches: 1.34.2; 1.34.4;
to garnish, dust with _KERNEL_OPT
 1.33  06-May-2015  hannken Remove miscfs/syncfs and

- move the syncer into kern/vfs_subr.c.

- change the syncer to process the mountlist and VFS_SYNC as appropriate.

- use an API for mount points similiar to the API for vnodes:
- vfs_syncer_add_to_worklist(struct mount *mp) to add
- vfs_syncer_remove_from_worklist(struct mount *mp) to remove a mount.

No objections on tech-kern@
 1.32  21-Apr-2015  pooka Don't check if constant-sized KM_SLEEP allocations succeeded.
 1.31  05-Sep-2014  matt branches: 1.31.2;
Don't next structure and enum definitions.
Don't use C++ keywords new, try, class, private, etc.
 1.30  15-Apr-2014  hannken Fix a deadlock where one thread exits, enters fstrans_lwp_dtor()
and wants fstrans_lock. This thread holds the proc_lock.
Another thread holds fstrans_lock and runs pserialize_perform().
As the first thread holds the proc_lock, timeouts are blocked and
the second thread blocks forever in kpause().

Change fstrans_lwp_dtor() to invalidate, but not free its info
structs. No need to take fstrans_lock.

Change fstrans_get_lwp_info() to reuse invalidated info before
trying to allocate a new one.
 1.29  23-Nov-2013  christos branches: 1.29.2;
change the mountlist CIRCLEQ into a TAILQ
 1.28  25-Oct-2013  martin Mark diagnostic-only variables
 1.27  30-Sep-2013  hannken Replace macro v_specmountpoint with two functions spec_node_getmountedfs()
and spec_node_setmountedfs() to manage the file system mounted on a device.
Assert the device is a block device.

Welcome to 6.99.24

Discussed on tech-kern@ some time ago.

Reviewed by: David Holland <dholland@netbsd.org>
 1.26  21-Jan-2013  hannken branches: 1.26.2;
Replace the rwlock based implementation with passive serialization
from pserialize(9) and mutex / condvar.

The fast paths (fstrans_start/fstrans_done on a file system not
suspended or suspending and fscow_run with no change pending) now
run without locks or other atomic operations. Suspension and cow
handler insertion and removal is done with mutex / condvars.

The API remains unchanged.
 1.25  12-May-2009  yamt branches: 1.25.12; 1.25.22;
don't forget to skip marker processes.
 1.24  16-Nov-2008  pooka branches: 1.24.4;
more <sys/buf.h> police
 1.23  17-Sep-2008  hannken branches: 1.23.2; 1.23.4; 1.23.6;
Replace the fss unmount hook with a vfs_hook.

fssvar.h: struct device * -> device_t.
fss.c: establish unmount hook on first attach, remove on last detach.
vfs_syscalls.c: remove the call of fss_umount_hook().
vfs_trans.c: destroy cow handlers on unmount as fstrans_unmount() will be
called before vfs_hooks.
 1.22  24-Jun-2008  ad branches: 1.22.2;
Use pool_cache.
 1.21  16-May-2008  hannken branches: 1.21.2;
Remove a bad assertion from last commit.
Non bufcache buffers may have BC_BUSY unset.
 1.20  16-May-2008  hannken Fscow_run() may recurse into itself.
Take care by adding a per-lwp recursion counter.
 1.19  28-Apr-2008  martin branches: 1.19.2;
Remove clause 3 and 4 from TNF licenses
 1.18  17-Mar-2008  yamt branches: 1.18.2; 1.18.4;
- simplify ASSERT_SLEEPABLE.
- move it from proc.h to systm.h.
- add some more checks.
- make it a little more lkm friendly.
 1.17  02-Feb-2008  hannken branches: 1.17.2; 1.17.6;
BO_COWDONE -> B_COWDONE: this flag is tested/modified from the thread owning
the buffer and therefore needs no protection by a mutex.

Ok: Andrew Doran <ad@netbsd.org>
 1.16  02-Jan-2008  ad Merge vmlocking2 to head.
 1.15  02-Dec-2007  hannken branches: 1.15.2; 1.15.6;
Fscow_run(): add a flag "bool data_valid" to note still valid data.
Buffers run through copy-on-write are marked B_COWDONE. This condition
is valid until the buffer has run through bwrite() and gets cleared from
biodone().

Welcome to 4.99.39.

Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
 1.14  08-Oct-2007  hannken branches: 1.14.4;
fscow_run(): Check for NULL mount and don't run the cow handler in this case.
 1.13  07-Oct-2007  hannken Remove an include committed by accident.

From Chris Ross via current-users.
 1.12  07-Oct-2007  hannken Update the file system copy-on-write handler.

- Instead of hooking the handler on the specdev of a mounted file system
hook directly on the `struct mount'.

- Rename from `vn_cow_*' to `fscow_*' and move to `kern/vfs_trans.c'. Use
`mount_*specific' instead of clobbering `struct mount' or `struct specinfo'.

- Replace the hand-made reader/writer lock with a krwlock.

- Keep `vn_cow_*' functions and mark as obsolete.

- Welcome to NetBSD 4.99.32 - `struct specinfo' changed size.

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
 1.11  26-Jul-2007  pooka branches: 1.11.4; 1.11.6; 1.11.8; 1.11.10;
Use eopnotsupp() instead of vfs_stdsuspendctl() and retire the latter.
 1.10  09-Jul-2007  ad branches: 1.10.2;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.9  17-May-2007  hannken Fstrans_start() always returns zero, so change its type to void.
 1.8  16-May-2007  hannken Use rwlock for fmi_shared_lock and fmi_lazy_lock.

Ok: Andrew Doran <ad@netbsd.org>
 1.7  12-Mar-2007  ad Use mutexes/condvars.
 1.6  12-Mar-2007  ad branches: 1.6.2;
Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
the pool's lock.
 1.5  16-Feb-2007  hannken branches: 1.5.2; 1.5.4; 1.5.8;
Make fstrans(9) the default helper for file system suspension.
Replaces the now obsolete vn_start_write()/vn_finished_write().
 1.4  15-Feb-2007  ad Replace some uses of lockmgr() / simplelocks.
 1.3  10-Feb-2007  hannken newlock2: syncer_lock is now a mutex.
 1.2  29-Jan-2007  hannken branches: 1.2.2;
Change fstrans enum types to upper case.
No functional change.

From Antti Kantee <pooka@netbsd.org>
 1.1  19-Jan-2007  hannken New file system suspension API to replace vn_start_write and vn_finished_write.
The suspension helpers are now put into file system specific operations.
This means every file system not supporting these helpers cannot be suspended
and therefore snapshots are no longer possible.

Implemented for file systems of type ffs.

The new API is enabled on a kernel option NEWVNGATE. This option is
not enabled by default in any kernel config.

Presented and discussed on tech-kern with much input from
Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.

Welcome to 4.99.9 (new vfs op vfs_suspendctl).
 1.2.2.2  01-Feb-2007  ad Sync with head.
 1.2.2.1  29-Jan-2007  ad file vfs_trans.c was added on branch newlock2 on 2007-02-01 08:48:41 +0000
 1.5.8.9  11-Nov-2007  hannken Add fstrans_mount() to explicitly allocate fstrans_info.
Replace remaining malloc() to kmem_alloc() in vfs_trans.c.

Ok: Andrew Doran <ad@netbsd.org>
 1.5.8.8  07-Nov-2007  hannken Merge struct fscow_mount_info into struct fstrans_mount_info.

Ok: Andrew Doran <ad@netbsd.org>
 1.5.8.7  09-Oct-2007  ad Sync with head.
 1.5.8.6  09-Oct-2007  ad Sync with head.
 1.5.8.5  08-Oct-2007  ad Don't use the 'specificdata' system to store per-mountpoint information
on transactions. It causes a massive amount of lock contention during
I/O. Instead use an opaque pointer in struct mount. (This change is
imcomplete but I am clearing out my tree.)
 1.5.8.4  20-Aug-2007  ad Sync with HEAD.
 1.5.8.3  08-Jun-2007  ad Sync with head.
 1.5.8.2  05-Apr-2007  ad Compile fixes.
 1.5.8.1  13-Mar-2007  ad Sync with head.
 1.5.4.8  17-Mar-2008  yamt sync with head.
 1.5.4.7  04-Feb-2008  yamt sync with head.
 1.5.4.6  21-Jan-2008  yamt sync with head
 1.5.4.5  07-Dec-2007  yamt sync with head
 1.5.4.4  27-Oct-2007  yamt sync with head.
 1.5.4.3  03-Sep-2007  yamt sync with head.
 1.5.4.2  26-Feb-2007  yamt sync with head.
 1.5.4.1  16-Feb-2007  yamt file vfs_trans.c was added on branch yamt-lazymbuf on 2007-02-26 09:11:24 +0000
 1.5.2.2  17-May-2007  yamt sync with head.
 1.5.2.1  24-Mar-2007  yamt sync with head.
 1.6.2.1  11-Jul-2007  mjf Sync with head.
 1.10.2.1  15-Aug-2007  skrll Sync with HEAD.
 1.11.10.2  26-Jul-2007  pooka Use eopnotsupp() instead of vfs_stdsuspendctl() and retire the latter.
 1.11.10.1  26-Jul-2007  pooka file vfs_trans.c was added on branch matt-mips64 on 2007-07-26 22:57:37 +0000
 1.11.8.1  14-Oct-2007  yamt sync with head.
 1.11.6.3  23-Mar-2008  matt sync with HEAD
 1.11.6.2  09-Jan-2008  matt sync with HEAD
 1.11.6.1  06-Nov-2007  matt sync with HEAD
 1.11.4.2  03-Dec-2007  joerg Sync with HEAD.
 1.11.4.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.14.4.2  18-Feb-2008  mjf Sync with HEAD.
 1.14.4.1  08-Dec-2007  mjf Sync with HEAD.
 1.15.6.1  02-Jan-2008  bouyer Sync with HEAD
 1.15.2.1  04-Dec-2007  ad Pull the vmlocking changes into a new branch.
 1.17.6.5  17-Jan-2009  mjf Sync with HEAD.
 1.17.6.4  28-Sep-2008  mjf Sync with HEAD.
 1.17.6.3  29-Jun-2008  mjf Sync with HEAD.
 1.17.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.17.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.17.2.1  24-Mar-2008  keiichi sync with head.
 1.18.4.3  16-May-2009  yamt sync with head
 1.18.4.2  04-May-2009  yamt sync with head.
 1.18.4.1  16-May-2008  yamt sync with head.
 1.18.2.1  18-May-2008  yamt sync with head.
 1.19.2.3  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.19.2.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.19.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.21.2.1  27-Jun-2008  simonb Sync with head.
 1.22.2.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.22.2.1  19-Oct-2008  haad Sync with HEAD.
 1.23.6.1  01-Jul-2009  snj branches: 1.23.6.1.2;
Pull up following revision(s) (requested by rmind in ticket #838):
sys/kern/init_sysctl.c: revision 1.162
sys/kern/vfs_trans.c: revision 1.25
don't forget to skip marker processes.
 1.23.6.1.2.1  21-Apr-2010  matt sync to netbsd-5
 1.23.4.1  01-Jul-2009  snj Pull up following revision(s) (requested by rmind in ticket #838):
sys/kern/init_sysctl.c: revision 1.162
sys/kern/vfs_trans.c: revision 1.25
don't forget to skip marker processes.
 1.23.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.24.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.25.22.3  03-Dec-2017  jdolecek update from HEAD
 1.25.22.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.25.22.1  25-Feb-2013  tls resync with head
 1.25.12.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.25.12.1  23-Jan-2013  yamt sync with head
 1.26.2.1  18-May-2014  rmind sync with head
 1.29.2.1  10-Aug-2014  tls Rebase.
 1.31.2.3  28-Aug-2017  skrll Sync with HEAD
 1.31.2.2  22-Sep-2015  skrll Sync with HEAD
 1.31.2.1  06-Jun-2015  skrll Sync with HEAD
 1.34.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.34.2.2  26-Apr-2017  pgoyette Sync with HEAD
 1.34.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.43.2.1  11-May-2017  pgoyette Sync with HEAD
 1.45.2.3  09-Oct-2018  martin Pull up following revision(s) (requested by hannken in ticket #1052):

sys/kern/vfs_trans.c: revision 1.51
distrib/sets/lists/comp/mi: revision 1.2233
share/man/man9/fstrans.9: revision 1.27
share/man/man9/Makefile: revision 1.431
sys/sys/fstrans.h: revision 1.12
sys/rump/librump/rumpkern/emul.c: revision 1.187
sys/dev/vnd.c: revision 1.266
sys/miscfs/genfs/genfs_vfsops.c: revision 1.8

Bring back three state file system suspension:

NORMAL -> SUSPENDING -> SUSPENDED

and add operation fstrans_start_lazy() that only blocks while SUSPENDED.

Change vndthread() support operation handle_with_rdwr() to bracket
its file system operations by fstrans_start_lazy() and fstrans_done().

PR kern/53624 (dom0 freeze on domU exit)
 1.45.2.2  21-Jun-2017  snj Pull up following revision(s) (requested by hannken in ticket #54):
sys/kern/vfs_trans.c: 1.47, 1.48
Clear fstrans entries whose mount is gone from the last fstrans_done() only.
--
Make the fast path of fstrans_get_lwp_info() "static inline".
 1.45.2.1  04-Jun-2017  bouyer pullup the following revisions, requested by hannken in ticket #2:
src/share/man/man9/fstrans.9 1.25
src/sys/kern/vfs_mount.c 1.66
src/sys/kern/vfs_subr.c 1.468
src/sys/kern/vfs_trans.c 1.46
src/sys/kern/vfs_vnode.c 1.94, 1.95, 1.96
src/sys/kern/vnode_if.c 1.105, 1.106
src/sys/kern/vnode_if.sh 1.65, 1.66
src/sys/kern/vnode_if.src 1.76
src/sys/miscfs/genfs/genfs_io.c 1.69
src/sys/miscfs/genfs/genfs_vnops.c 1.196, 1.197
src/sys/miscfs/genfs/layer_extern.h 1.40
src/sys/miscfs/genfs/layer_vfsops.c 1.51
src/sys/miscfs/genfs/layer_vnops.c 1.67
src/sys/miscfs/nullfs/null_vnops.c 1.42
src/sys/miscfs/overlay/overlay_vnops.c 1.24
src/sys/miscfs/umapfs/umap_vnops.c 1.60
src/sys/rump/include/rump/rumpvnode_if.h 1.29, 1.30
src/sys/rump/librump/rumpkern/emul.c 1.182
src/sys/rump/librump/rumpvfs/rumpvnode_if.c 1.29, 1.30
src/sys/sys/fstrans.h 1.11
src/sys/sys/vnode.h 1.278
src/sys/sys/vnode_if.h 1.100, 1.101
src/sys/sys/vnode_impl.h 1.14, 1.15
src/sys/ufs/lfs/lfs_pages.c 1.12

Vnode state, lock and fstrans cleanup:
- Rename vnode state "VS_ACTIVE" to "VS_LOADED" and add synthetic
state "VS_ACTIVE" to assert a loaded vnode with usecount > 0.

- Redo FSTRANS in vnode_if.c and use it for VOP_LOCK and VOP_UNLOCK.

- Cleanup the genfs lock operations.

- Make "struct vnode_impl" member "vi_lock" a krwlock_t again.

- Remove the lock type argument from fstrans_start and
fstrans_start_nowait,
remove now unused FSTRANS state "FSTRANS_SUSPENDING".
 1.48.6.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.48.6.1  10-Jun-2019  christos Sync with HEAD
 1.48.4.2  20-Oct-2018  pgoyette Sync with head
 1.48.4.1  30-Sep-2018  pgoyette Ssync with HEAD
 1.70.8.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed