The NetBSD Project

CVS log for src/sys/kern/vfs_vnode.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / kern

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.103 / (download) - annotate - [select for diffs], Wed Feb 20 10:07:27 2019 UTC (9 months ago) by hannken
Branch: MAIN
CVS Tags: phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, netbsd-9, isaki-audio2-base, isaki-audio2, HEAD
Changes since 1.102: +5 -7 lines
Diff to previous 1.102 (colored)

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.

Revision 1.102 / (download) - annotate - [select for diffs], Wed Feb 20 10:06:33 2019 UTC (9 months ago) by hannken
Branch: MAIN
Changes since 1.101: +4 -2 lines
Diff to previous 1.101 (colored)

Assign vnode to dead_rootmount before vcache_dealloc() releases it.

Now v_mount is never NULL.

Revision 1.101 / (download) - annotate - [select for diffs], Tue Jan 1 10:06:54 2019 UTC (10 months, 2 weeks ago) by hannken
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118
Changes since 1.100: +4 -4 lines
Diff to previous 1.100 (colored)

Add "void *extra" argument to vcache_new() so a file system may
pass more information about the file to create.

Welcome to 8.99.30

Revision 1.100 / (download) - annotate - [select for diffs], Fri Sep 22 06:05:20 2017 UTC (2 years, 2 months ago) by joerg
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, phil-wifi-base, pgoyette-compat-base, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.99: +4 -3 lines
Diff to previous 1.99 (colored)

Fix non-DIAGNOSTICS build by adjusting _vstate_assert here too.

Revision 1.99 / (download) - annotate - [select for diffs], Thu Sep 21 18:19:44 2017 UTC (2 years, 2 months ago) by joerg
Branch: MAIN
Changes since 1.98: +24 -7 lines
Diff to previous 1.98 (colored)

Change the VSTATE_ASSERT_UNLOCKED code by pushing the potential lock
handling into the backend and doing an optimistic (unlocked) check
first. Always taking the vnode interlock makes this assertion otherwise
very heavy for multi-processor machines. Ride the kernel version bump.

Revision 1.98 / (download) - annotate - [select for diffs], Mon Aug 21 09:00:21 2017 UTC (2 years, 3 months ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base-20170825
Changes since 1.97: +69 -2 lines
Diff to previous 1.97 (colored)

Change forced unmount to revert open device vnodes to anonymous devices.

Revision 1.97 / (download) - annotate - [select for diffs], Mon Aug 21 08:56:45 2017 UTC (2 years, 3 months ago) by hannken
Branch: MAIN
Changes since 1.96: +37 -25 lines
Diff to previous 1.96 (colored)

No need to cache anonymous device vnodes, they will never be looked up.

Set key to (dead_rootmount, 0, NULL) and add assertions.

Revision 1.96 / (download) - annotate - [select for diffs], Sun Jun 4 08:05:42 2017 UTC (2 years, 5 months ago) by hannken
Branch: MAIN
CVS Tags: perseant-stdc-iso10646-base, perseant-stdc-iso10646
Changes since 1.95: +5 -5 lines
Diff to previous 1.95 (colored)

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.

Revision 1.95 / (download) - annotate - [select for diffs], Sun Jun 4 08:02:26 2017 UTC (2 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.94: +4 -19 lines
Diff to previous 1.94 (colored)

Locking a layer vnode using the regular bypass routine is no longer
racy.  Undo the change from 2017-03-30 11:16:52, commitid eurqbzuGxGRlryLz
and make vi_lock a krwlock_t again.

Revision 1.94 / (download) - annotate - [select for diffs], Sun Jun 4 07:58:29 2017 UTC (2 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.93: +45 -37 lines
Diff to previous 1.93 (colored)

A vnode is usually called "active", if it has an associated file system
node and a usecount greater zero.  Therefore rename state "VS_ACTIVE"
to "VS_LOADED" and add a new synthetic state "VS_ACTIVE" for VSTATE_ASSERT()
to assert an active vnode.

Add VSTATE_ASSERT_UNLOCKED() to be used with v_interlock unheld and
move the state assertion macros to sys/vnode_impl.h.

Revision 1.93 / (download) - annotate - [select for diffs], Sun May 28 16:39:41 2017 UTC (2 years, 5 months ago) by hannken
Branch: MAIN
CVS Tags: netbsd-8-base
Branch point for: netbsd-8
Changes since 1.92: +5 -2 lines
Diff to previous 1.92 (colored)

Restrict vgone() to suspended file systems only.

Welcome to 7.99.75, old file system modules would cause a diagnostic
assertion with new kernel.

Revision 1.92 / (download) - annotate - [select for diffs], Sun May 28 16:35:47 2017 UTC (2 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.91: +35 -19 lines
Diff to previous 1.91 (colored)

Add a helper to propagate file system suspension for vrevoke().

Take care to retry suspension on interrupt as vrevoke must succeed.

Revision 1.91 / (download) - annotate - [select for diffs], Fri May 26 14:40:09 2017 UTC (2 years, 5 months ago) by riastradh
Branch: MAIN
Changes since 1.90: +4 -2 lines
Diff to previous 1.90 (colored)

Check VOP_INACTIVE contract with a judicious assert.

Revision 1.90 / (download) - annotate - [select for diffs], Fri May 26 14:39:20 2017 UTC (2 years, 5 months ago) by riastradh
Branch: MAIN
Changes since 1.89: +5 -3 lines
Diff to previous 1.89 (colored)

Clarify comment.

Revision 1.89 / (download) - annotate - [select for diffs], Fri May 26 14:20:59 2017 UTC (2 years, 5 months ago) by riastradh
Branch: MAIN
Changes since 1.88: +2 -3 lines
Diff to previous 1.88 (colored)

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.

Revision 1.88 / (download) - annotate - [select for diffs], Wed May 17 12:46:14 2017 UTC (2 years, 6 months ago) by hannken
Branch: MAIN
CVS Tags: prg-localcount2-base3
Changes since 1.87: +24 -7 lines
Diff to previous 1.87 (colored)

Suspend file system while revoking a vnode.  This way no operations run
on the mounted file system during revoke and all operations see
the state before or after the revoke.

Revision 1.87 / (download) - annotate - [select for diffs], Mon Apr 17 08:32:01 2017 UTC (2 years, 7 months ago) by hannken
Branch: MAIN
CVS Tags: prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, pgoyette-localcount-20170426, bouyer-socketcan-base1
Branch point for: prg-localcount2
Changes since 1.86: +11 -9 lines
Diff to previous 1.86 (colored)

Remove unused argument "nextp" from vfs_busy() and vfs_unbusy().
Remove argument "keepref" from vfs_unbusy() and add vfs_ref() where needed.

Revision 1.86 / (download) - annotate - [select for diffs], Mon Apr 17 08:31:02 2017 UTC (2 years, 7 months ago) by hannken
Branch: MAIN
Changes since 1.85: +3 -3 lines
Diff to previous 1.85 (colored)

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).

Revision 1.85 / (download) - annotate - [select for diffs], Sun Apr 16 16:48:08 2017 UTC (2 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.84: +3 -3 lines
Diff to previous 1.84 (colored)

Back out previous.

Breaks file systems for which VOP_UNLOCK doesn't work on a reclaimed
vnode.

The only case in tree right now is sys/fs/union -- most file systems
use genfs_unlock, which does work on a reclaimed vnode.

Maybe we can work around this -- and still enable VOP_RECLAIM's
callees to assert lock ownership -- by having VOP_RECLAIM unlock the
vnode instead.

Revision 1.84 / (download) - annotate - [select for diffs], Sat Apr 15 23:16:53 2017 UTC (2 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.83: +3 -3 lines
Diff to previous 1.83 (colored)

Keep vnode locked during VOP_RECLAIM.

No bump because it wouldn't have been possible to acquire the lock in
VOP_RECLAIM anyway -- instant deadlock because vn_lock waits to
transition out of the RECLAIMING state first.  Benefit is that we can
now assert ownership of the lock in any operations called by
VOP_RECLAIM.

Discussed on tech-kern:

https://mail-index.netbsd.org/tech-kern/2017/04/01/msg021751.html

Revision 1.83 / (download) - annotate - [select for diffs], Tue Apr 11 14:45:46 2017 UTC (2 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.82: +5 -8 lines
Diff to previous 1.82 (colored)

Simplify: eliminate a now-needless unlock/lock cycle.

Revision 1.82 / (download) - annotate - [select for diffs], Tue Apr 11 14:25:00 2017 UTC (2 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.81: +6 -4 lines
Diff to previous 1.81 (colored)

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!

Revision 1.81 / (download) - annotate - [select for diffs], Thu Mar 30 09:16:52 2017 UTC (2 years, 7 months ago) by hannken
Branch: MAIN
CVS Tags: jdolecek-ncq-base, jdolecek-ncq
Changes since 1.80: +19 -4 lines
Diff to previous 1.80 (colored)

Locking a layer vnode is racy as it may become reclaimed before
calling the operation on the lower vnode.

Replace vi_lock with a rw_obj and change layered file systems
to share the lock with the lower vnode.

Layered file systems now use genfs_lock()/_unlock/_islocked().

Welcome to 7.99.67

Revision 1.80 / (download) - annotate - [select for diffs], Thu Mar 30 09:15:51 2017 UTC (2 years, 7 months ago) by hannken
Branch: MAIN
Changes since 1.79: +13 -8 lines
Diff to previous 1.79 (colored)

Change the operations vector before changing the mount.

Vnode operations enter the mount before using the vector.

Revision 1.79 / (download) - annotate - [select for diffs], Thu Mar 30 09:14:59 2017 UTC (2 years, 7 months ago) by hannken
Branch: MAIN
Changes since 1.78: +69 -74 lines
Diff to previous 1.78 (colored)

Change vrelel() to defer the test for a reclaimed vnode until
we hold both the interlock and the vnode lock.

Add a common operation to deallocate a vnode in state LOADING.

Revision 1.78 / (download) - annotate - [select for diffs], Thu Mar 30 09:14:08 2017 UTC (2 years, 7 months ago) by hannken
Branch: MAIN
Changes since 1.77: +12 -8 lines
Diff to previous 1.77 (colored)

Add flag VRELEL_FORCE_RELE to vrelel() to force release and
use it from vdrain_vrele() and vrele_flush() to prevent a
possible live lock from vrele_flush().

Revision 1.77 / (download) - annotate - [select for diffs], Thu Mar 30 09:12:21 2017 UTC (2 years, 7 months ago) by hannken
Branch: MAIN
Changes since 1.76: +4 -4 lines
Diff to previous 1.76 (colored)

Change last users of FSTRANS_LAZY to FSTRANS_SHARED and change
genfs_suspendctl() to move from FSTRANS_NORMAL to FSTRANS_SUSPENDED
and vice versa.

Revision 1.76 / (download) - annotate - [select for diffs], Mon Mar 6 10:07:52 2017 UTC (2 years, 8 months ago) by hannken
Branch: MAIN
CVS Tags: pgoyette-localcount-20170320
Changes since 1.75: +8 -9 lines
Diff to previous 1.75 (colored)

Change vrecycle() and vgone() to lock with LK_RETRY.  If this node is
a layerfs node the lower node(s) may already be reclaimed.

Revision 1.75 / (download) - annotate - [select for diffs], Fri Feb 17 08:30:00 2017 UTC (2 years, 9 months ago) by hannken
Branch: MAIN
Changes since 1.74: +43 -2 lines
Diff to previous 1.74 (colored)

Bring back vrele_flush() to flush deferred vrele() o an suspended file system.

Revision 1.74 / (download) - annotate - [select for diffs], Fri Feb 17 08:27:58 2017 UTC (2 years, 9 months ago) by hannken
Branch: MAIN
Changes since 1.73: +7 -2 lines
Diff to previous 1.73 (colored)

Make sure vcache_reclaim() will complete before file system suspension.

Revision 1.73 / (download) - annotate - [select for diffs], Fri Jan 27 10:50:10 2017 UTC (2 years, 9 months ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base-20170204
Changes since 1.72: +14 -4 lines
Diff to previous 1.72 (colored)

Vrecycle() cannot wait for the vnode lock.  On a leaf file system this lock
will always succeed as we hold the last reference and prevent further
references.  On layered file systems waiting for the lock would open a can of
deadlocks as the lower vnodes may have other active references.

Revision 1.72 / (download) - annotate - [select for diffs], Wed Jan 11 09:08:58 2017 UTC (2 years, 10 months ago) by hannken
Branch: MAIN
CVS Tags: bouyer-socketcan-base
Branch point for: bouyer-socketcan
Changes since 1.71: +4 -4 lines
Diff to previous 1.71 (colored)

Move vnode member v_lock as vi_lock to vnode_impl.h.

Revision 1.71 / (download) - annotate - [select for diffs], Wed Jan 11 09:04:37 2017 UTC (2 years, 10 months ago) by hannken
Branch: MAIN
Changes since 1.70: +4 -4 lines
Diff to previous 1.70 (colored)

Move vnode members v_dnclist and v_nclist as vi_dnclist and
vi_nclist to vnode_impl.h.

Revision 1.70 / (download) - annotate - [select for diffs], Thu Jan 5 10:05:11 2017 UTC (2 years, 10 months ago) by hannken
Branch: MAIN
CVS Tags: pgoyette-localcount-20170107
Changes since 1.69: +138 -139 lines
Diff to previous 1.69 (colored)

Name all "vnode_impl_t" variables "vip".
No functional change.

Revision 1.69 / (download) - annotate - [select for diffs], Wed Jan 4 17:13:50 2017 UTC (2 years, 10 months ago) by hannken
Branch: MAIN
Changes since 1.68: +73 -76 lines
Diff to previous 1.68 (colored)

Expand struct vcache to individual variables (vcache.* -> vcache_*).
No functional change.

Revision 1.68 / (download) - annotate - [select for diffs], Mon Jan 2 10:36:58 2017 UTC (2 years, 10 months ago) by hannken
Branch: MAIN
Changes since 1.67: +7 -2 lines
Diff to previous 1.67 (colored)

Now that v_usecount tracks valid references add some "v_usecount == 1"
assertions.

Revision 1.67 / (download) - annotate - [select for diffs], Mon Jan 2 10:35:00 2017 UTC (2 years, 10 months ago) by hannken
Branch: MAIN
Changes since 1.66: +36 -60 lines
Diff to previous 1.66 (colored)

Change vcache_*vget() to increment v_usecount on success only.
Increment v_holdcnt to prevent the vnode from disappearing while
vcache_vget() waits for a stable state.

Now v_usecount tracks the number of successfull references.

Revision 1.66 / (download) - annotate - [select for diffs], Mon Jan 2 10:33:28 2017 UTC (2 years, 10 months ago) by hannken
Branch: MAIN
Changes since 1.65: +97 -63 lines
Diff to previous 1.65 (colored)

Rename vget() to vcache_vget() and vcache_tryvget() respectively and
move the definitions to sys/vnode_impl.h.

No functional change intended.

Welcome to 7.99.54

Revision 1.65 / (download) - annotate - [select for diffs], Tue Dec 27 11:59:36 2016 UTC (2 years, 10 months ago) by hannken
Branch: MAIN
Changes since 1.64: +6 -12 lines
Diff to previous 1.64 (colored)

It is wrong to block the vnode during vcache_rekey.  The vnode may be looked
up using the old key until vcache_rekey_exit changes the key to the new one.

Add an assertion that the temporary key is different from the current one.

Revision 1.64 / (download) - annotate - [select for diffs], Tue Dec 20 10:02:21 2016 UTC (2 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.63: +11 -12 lines
Diff to previous 1.63 (colored)

Restructure vdrain_vrele().  While it is not possible for another thread
to lock this vnodes v_interlock -> vdrain_lock another vnode sharing the
v_interlock may lock this order.
While here, restore fstrans_start_nowait arg to FSTRANS_LAZY.

Fixes a deadlock seen recently on some pbulk environments.

Revision 1.63 / (download) - annotate - [select for diffs], Wed Dec 14 15:49:35 2016 UTC (2 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.62: +179 -208 lines
Diff to previous 1.62 (colored)

Change the freelists to lrulists, all vnodes are always on one
of the lists.  Speeds up namei on cached vnodes by ~3 percent.

Merge "vrele_thread" into "vdrain_thread" so we have one thread
working on the lrulists.  Adapt vfs_drainvnodes() to always wait
for a complete cycle of vdrain_thread().

Revision 1.62 / (download) - annotate - [select for diffs], Wed Dec 14 15:48:55 2016 UTC (2 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.61: +34 -26 lines
Diff to previous 1.61 (colored)

Move vnode members "v_freelisthd" and "v_freelist" from "struct vnode"
to "struct vnode_impl" and rename to "vi_lrulisthd" and "vi_lrulist".

No functional change intended.

Welcome to 7.99.48

Revision 1.61 / (download) - annotate - [select for diffs], Wed Dec 14 15:46:57 2016 UTC (2 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.60: +18 -20 lines
Diff to previous 1.60 (colored)

Remove the "target" argment from vfs_drainvnodes() as it is
always equal to "desiredvnodes" and move its definition
from sys/vnode.h to sys/vnode_impl.h.

Extend vfs_drainvnodes() to also wait for deferred vrele to flush
and replace the call to vrele_flush() with a call to vfs_drainvnodes().

Revision 1.60 / (download) - annotate - [select for diffs], Thu Dec 1 14:49:03 2016 UTC (2 years, 11 months ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base-20161204
Changes since 1.59: +35 -37 lines
Diff to previous 1.59 (colored)

- Change vcache_reclaim() to always call VOP_INACTIVE() before VOP_RECLAIM().
  When called from vrecycle() or vgone() there is a window where the refcount
  is greater than zero and another thread could get and release a reference
  that would miss VOP_INACTIVE() as the refcount doesn't drop to zero.

  Adjust test fs/puffs/t_basic:  test VOP_INACTIVE count being greater zero.

- Make vrecycle() more robust by checking v_usecount first and preventing
  further references across vn_lock().  Fixes a deadlock where one thread
  starts unmount, second thread locks a directory and allocates a vnode
  and first thread tries to vrecycle() the directory.
  First thread holds vfs_busy and wants vnode, second thread holds vnode
  and wants vfs_busy.

- With these fixes in place change cleanvnode() to use vget()/vrecycle()
  to reclaim the vnode.

Revision 1.59 / (download) - annotate - [select for diffs], Thu Nov 3 11:04:21 2016 UTC (3 years ago) by hannken
Branch: MAIN
CVS Tags: pgoyette-localcount-20161104
Changes since 1.58: +2 -45 lines
Diff to previous 1.58 (colored)

Add a function to print the fields of a vnode including its implementation
and use it from vprint() and vfs_vnode_print().

Move vstate_name() to vfs_subr.c.

Revision 1.58 / (download) - annotate - [select for diffs], Thu Nov 3 11:03:31 2016 UTC (3 years ago) by hannken
Branch: MAIN
Changes since 1.57: +3 -29 lines
Diff to previous 1.57 (colored)

Split sys/vnode.h into sys/vnode.h and sys/vnode_impl.h
- Move _VFS_VNODE_PRIVATE protected operations into vnode_impl.h.
- Move struct vnode_impl definition and operations into vnode_impl.h.
- Include vnode_impl.h where we include vnode.h with _VFS_VNODE_PRIVATE defined.
- Get rid of _VFS_VNODE_PRIVATE.

Revision 1.57 / (download) - annotate - [select for diffs], Thu Nov 3 11:02:09 2016 UTC (3 years ago) by hannken
Branch: MAIN
Changes since 1.56: +164 -163 lines
Diff to previous 1.56 (colored)

Prepare the split of sys/vnode.h into sys/vnode.h and sys/vnode_impl.h
- Rename struct vcache_node to vnode_impl, start its fields with vi_.
- Rename enum vcache_state to vnode_state, start its elements with VS_.
- Rename macros VN_TO_VP and VP_TO_VN to VIMPL_TO_VNODE and VNODE_TO_VIMPL.
- Add typedef struct vnode_impl vnode_impl_t.

Revision 1.56 / (download) - annotate - [select for diffs], Sat Aug 20 12:37:08 2016 UTC (3 years, 3 months ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base-20161004, localcount-20160914
Changes since 1.55: +2 -25 lines
Diff to previous 1.55 (colored)

Remove now obsolete operation vcache_remove().

Welcome to 7.99.36

Revision 1.55 / (download) - annotate - [select for diffs], Sat Aug 20 12:33:57 2016 UTC (3 years, 3 months ago) by hannken
Branch: MAIN
Changes since 1.54: +30 -4 lines
Diff to previous 1.54 (colored)

Change vcache_reclaim() to remove vnode from vnode cache once the
vnode was reclaimed from the file system.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Aug 20 12:31:37 2016 UTC (3 years, 3 months ago) by hannken
Branch: MAIN
Changes since 1.53: +104 -103 lines
Diff to previous 1.53 (colored)

Rename vclean() to vcache_reclaim().
No functional change.

Revision 1.53 / (download) - annotate - [select for diffs], Thu Jul 7 06:55:43 2016 UTC (3 years, 4 months ago) by msaitoh
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20160907
Branch point for: pgoyette-localcount
Changes since 1.52: +3 -3 lines
Diff to previous 1.52 (colored)

KNF. Remove extra spaces. No functional change.

Revision 1.52 / (download) - annotate - [select for diffs], Thu May 26 11:09:55 2016 UTC (3 years, 5 months ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base-20160529
Changes since 1.51: +160 -195 lines
Diff to previous 1.51 (colored)

Use vnode state to replace VI_MARKER, VI_CHANGING, VI_XLOCK and VI_CLEAN.

Presented on tech-kern@

Revision 1.51 / (download) - annotate - [select for diffs], Thu May 26 11:08:44 2016 UTC (3 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.50: +155 -3 lines
Diff to previous 1.50 (colored)

Add vnode state and supporting operations and diagnostics.

Presented on tech-kern@

Revision 1.50 / (download) - annotate - [select for diffs], Thu May 26 11:07:33 2016 UTC (3 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.49: +116 -93 lines
Diff to previous 1.49 (colored)

Merge the vnode and its corresponding vcache_node into one
vcache_node structure.

Print the vcache_node part in vprint() and vfs_vnode_print().

Presented on tech-kern@

Revision 1.49 / (download) - annotate - [select for diffs], Thu May 19 14:50:18 2016 UTC (3 years, 6 months ago) by hannken
Branch: MAIN
Changes since 1.48: +30 -14 lines
Diff to previous 1.48 (colored)

Keep the old vcache node on rekey.  Change its key and remove the
new vcache node now used as placeholder only.

Revision 1.48 / (download) - annotate - [select for diffs], Thu May 19 14:47:33 2016 UTC (3 years, 6 months ago) by hannken
Branch: MAIN
Changes since 1.47: +37 -4 lines
Diff to previous 1.47 (colored)

Add VFS_VNODE_PRIVATE protected operations vnalloc_marker() to create,
vnfree_marker() to destroy and vnis_marker() to test for marker vnodes.

Make operations vnalloc() and vnfree() local to vfs_vnode.c.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Apr 22 15:01:54 2016 UTC (3 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.46: +6 -6 lines
Diff to previous 1.46 (colored)

Report what error was if nonzero with KASSERTMSG.

Revision 1.46 / (download) - annotate - [select for diffs], Thu Nov 12 11:35:42 2015 UTC (4 years ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226
Changes since 1.45: +27 -19 lines
Diff to previous 1.45 (colored)

Take the vnode lock before the vnode is marked VI_CHANGING and fed
to vclean().  Prevents a deadlock with two null mounts on the same
physical mount where one thread tries to vclean() a layer node and
another thread tries to vget() a layer node pointing to the same
physical node.

Fixes PR kern/50375 layerfs (nullfs) locking problem leading to livelock

Revision 1.45 / (download) - annotate - [select for diffs], Sun Jul 12 08:11:28 2015 UTC (4 years, 4 months ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base-20150921
Changes since 1.44: +3 -86 lines
Diff to previous 1.44 (colored)

Operations getnewvnode() and ungetnewvnode() have been replaced with vcache.
- Remove now obsolete functions getnewvnode() and ungetnewvnode().
- Document vcache operations.

Welcome to 7.99.20

Revision 1.44 / (download) - annotate - [select for diffs], Tue Jun 23 10:41:59 2015 UTC (4 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.43: +8 -8 lines
Diff to previous 1.43 (colored)

Use VFS_PROTOS() for deadfs.  Rename dead_mount to dead_rootmount.

Revision 1.43 / (download) - annotate - [select for diffs], Tue Jun 23 10:40:36 2015 UTC (4 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.42: +16 -25 lines
Diff to previous 1.42 (colored)

Remove the test for mounted-on block devices in vclean() and
always close the vnode here.

A forced unmount of a file system holding a mounted-on
block device will make this mounted-on file system unusable.

Revision 1.42 / (download) - annotate - [select for diffs], Mon Apr 20 19:36:55 2015 UTC (4 years, 7 months ago) by riastradh
Branch: MAIN
CVS Tags: nick-nhusb-base-20150606
Changes since 1.41: +2 -7 lines
Diff to previous 1.41 (colored)

Cull unused vnode v_iflags: VI_LAYER, VI_LOCKSHARE.

Revision 1.41 / (download) - annotate - [select for diffs], Mon Apr 20 13:44:16 2015 UTC (4 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.40: +7 -12 lines
Diff to previous 1.40 (colored)

Make vget always return vnode unlocked.

Convert callers who want locks to use vn_lock afterward.

Add extra argument so the compiler will report stragglers.

Revision 1.40 / (download) - annotate - [select for diffs], Tue Mar 17 09:38:21 2015 UTC (4 years, 8 months ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base-20150406
Changes since 1.39: +78 -2 lines
Diff to previous 1.39 (colored)

Add new operation "vcache_new()" to allocate and initialise a new
vnode/fsnode pair:

int
vcache_new(struct mount *mp, struct vnode *dvp, struct vattr *vap,
    kauth_cred_t cred, struct vnode **vpp)

where dvp is the (referenced) directory where we want to create the
new node, vap passes va_type, va_mode and possibly va_rdev and cred
gives the credentials to setup uid/guid.

The node returned from vcache_new() is referenced, fully initialised
and has link count zero.

Welcome to NetBSD 7.99.7

Revision 1.39 / (download) - annotate - [select for diffs], Fri Oct 3 14:45:38 2014 UTC (5 years, 1 month ago) by hannken
Branch: MAIN
CVS Tags: nick-nhusb-base
Branch point for: nick-nhusb
Changes since 1.38: +7 -2 lines
Diff to previous 1.38 (colored)

When creating a vnode with vcache_get() mark the vnode VI_CHANGING until
it is fully initialised.  It may be on the specnode list before it is
fully initialised and revoking it then would panic.

Should prevent the panic from PR kern/49171 (panic when closing a pty).

Revision 1.38 / (download) - annotate - [select for diffs], Fri Sep 5 05:57:21 2014 UTC (5 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.37: +4 -3 lines
Diff to previous 1.37 (colored)

Don't next structure and enum definitions.
Don't use C++ keywords new, try, class, private, etc.

Revision 1.37 / (download) - annotate - [select for diffs], Sat Jul 5 09:33:15 2014 UTC (5 years, 4 months ago) by hannken
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-earlyentropy-base, netbsd-7-base
Branch point for: netbsd-7
Changes since 1.36: +84 -2 lines
Diff to previous 1.36 (colored)

Add vcache operations to support key changes:

vcache_rekey_enter locks the old cache node and creates and locks the
  new cache node.  It is an error if the new cache node exists.

vcache_rekey_exit removes the old cache node and finalizes and
  unlocks the new cache node.

No objections on tech-kern@

Welcome to 6.99.46

Revision 1.36 / (download) - annotate - [select for diffs], Thu May 8 08:21:53 2014 UTC (5 years, 6 months ago) by hannken
Branch: MAIN
CVS Tags: yamt-pagecache-base9, rmind-smpnet-nbase, rmind-smpnet-base
Changes since 1.35: +242 -13 lines
Diff to previous 1.35 (colored)

Add a global vnode cache:

- vcache_get() retrieves a referenced and initialised vnode / fs node pair.
- vcache_remove() removes a vnode / fs node pair from the cache.

On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to
initialise a vnode / fs node pair.  This call is guaranteed exclusive,
no other thread will try to load this vnode / fs node pair.

Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.

Remove now unused ufs/ufs_ihash

Discussed on tech-kern.

Welcome to 6.99.41

Revision 1.35 / (download) - annotate - [select for diffs], Mon Mar 24 13:42:40 2014 UTC (5 years, 8 months ago) by hannken
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
Branch point for: tls-earlyentropy
Changes since 1.34: +29 -3 lines
Diff to previous 1.34 (colored)

- Make VI_XLOCK, VI_CLEAN and VI_LOCKSHARE private to kern/vfs_*.c.
- Make vwait() static.
- Add  vdead_check() to check a vnode for being or becoming dead.

Discussed on tech-kern.

Welcome to 6.99.38

Revision 1.34 / (download) - annotate - [select for diffs], Mon Mar 17 09:27:37 2014 UTC (5 years, 8 months ago) by hannken
Branch: MAIN
CVS Tags: riastradh-drm2-base3
Changes since 1.33: +15 -3 lines
Diff to previous 1.33 (colored)

Add fstrans_startnowait()/fstrans_done() to vrele_thread().

Revision 1.33 / (download) - annotate - [select for diffs], Wed Mar 5 09:37:29 2014 UTC (5 years, 8 months ago) by hannken
Branch: MAIN
Changes since 1.32: +18 -15 lines
Diff to previous 1.32 (colored)

Current support for iterating over mnt_vnodelist is rudimentary.  Every
caller has to care about list and vnode mutexes, reference count being zero,
intermediate vnode states like VI_CLEAN, VI_XLOCK, VI_MARKER and so on.

Add an interface to iterate over a vnode list:

void vfs_vnode_iterator_init(struct mount *mp, struct vnode_iterator **marker)
void vfs_vnode_iterator_destroy(struct vnode_iterator *marker)
bool vfs_vnode_iterator_next(struct vnode_iterator *marker, struct vnode **vpp)

vfs_vnode_iterator_next() returns either "false / *vpp == NULL" when done
or "true / *vpp != NULL" to return the next referenced vnode from the list.

To make vrecycle() work in this environment change it to

bool vrecycle(struct vnode *vp)

where "vp" is a referenced vnode to be destroyed if this is the last reference.

Discussed on tech-kern.

Welcome to 6.99.34

Revision 1.32 / (download) - annotate - [select for diffs], Thu Feb 27 16:51:38 2014 UTC (5 years, 8 months ago) by hannken
Branch: MAIN
Changes since 1.31: +31 -31 lines
Diff to previous 1.31 (colored)

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

Revision 1.31 / (download) - annotate - [select for diffs], Thu Feb 27 13:00:06 2014 UTC (5 years, 8 months ago) by hannken
Branch: MAIN
Changes since 1.30: +12 -8 lines
Diff to previous 1.30 (colored)

Currently dead vnodes still reside on the vnodelist of the file system
they have been removed from.

Create a "dead mount" that takes dead vnodes until they get freed.

Discussed on tech-kern.

Revision 1.30 / (download) - annotate - [select for diffs], Sat Dec 7 10:03:28 2013 UTC (5 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.29: +12 -28 lines
Diff to previous 1.29 (colored)

When deciding to defer in vrelel():
- No need to always defer layer vnodes, if we get the vnode lock it
  is safe to inactivate.
- Always use VOP_LOCK(), it makes no sense to use vn_lock() here.
- No need to drop v_interlock for VOP_LOCK(... LK_NOWAIT).

Revision 1.29 / (download) - annotate - [select for diffs], Sun Dec 1 17:29:40 2013 UTC (5 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.28: +62 -57 lines
Diff to previous 1.28 (colored)

Put back the vnode changes I backed out yesterday; they were not the problem.
I've tested them with 2 -j 20 builds on an 8 cpu box. It crashed reliably
with the pcu changes present before.

Revision 1.28 / (download) - annotate - [select for diffs], Sun Dec 1 00:59:34 2013 UTC (5 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.27: +57 -62 lines
Diff to previous 1.27 (colored)

Revert recent vnode changes per PR/48411, I still have deadlocks with
build -j 20 on an 8 cpu machine.

Revision 1.27 / (download) - annotate - [select for diffs], Fri Nov 29 14:58:55 2013 UTC (5 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.26: +24 -14 lines
Diff to previous 1.26 (colored)

Change vrelel() to mark the vnode as changing after it has aquired
the vnode lock but before it calls VOP_INACTIVE().

Should fix the race between layer_node_find() trying to vget(, LK_NOWAIT)
a locked vnode when vrelel() marked it as changing and wants its lock.

PR kern/48411 (repeatable SMP crashes in amd64-current)

Revision 1.26 / (download) - annotate - [select for diffs], Sat Nov 23 13:46:22 2013 UTC (5 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.25: +49 -54 lines
Diff to previous 1.25 (colored)

Replace VI_INACTNOW and VI_INACTREDO with a new flag VI_CHANGING that gets
set while a vnode changes state from active to inactive or from active
or inactive to clean and protects "vclean(); vrelel()" and "vrelel()"
against "vget()".

Presented on tech-kern.

Revision 1.25 / (download) - annotate - [select for diffs], Thu Nov 7 09:48:34 2013 UTC (6 years ago) by hannken
Branch: MAIN
Changes since 1.24: +21 -27 lines
Diff to previous 1.24 (colored)

Make vclean static (ride 6.99.2).

DOCLOSE is no longer needed -- remove.

Revision 1.24 / (download) - annotate - [select for diffs], Sun Nov 3 08:33:00 2013 UTC (6 years ago) by hannken
Branch: MAIN
Changes since 1.23: +24 -54 lines
Diff to previous 1.23 (colored)

cleanvnode():
- VC_XLOCK/VC_MASK are not used anymore, remove.
- If we get a reference while cleaning, there is no need to retry as
  these reference and this vnode will disappear soon.
- Make sure we run inside a fstrans transaction to prevent deadlocks
  against vget().

vrecycle():
- don't even try to recycle a vnode currently cleaning.

Revision 1.23 / (download) - annotate - [select for diffs], Tue Oct 29 09:53:51 2013 UTC (6 years ago) by hannken
Branch: MAIN
Changes since 1.22: +34 -36 lines
Diff to previous 1.22 (colored)

Vnode API cleanup pass 1.

- Make these defines and functions private to vfs_vnode.c:

  VC_MASK, VC_LOCK, DOCLOSE, VI_IANCTREDO and VI_INACTNOW
  vclean() and vrelel()

- Remove the long time unused lwp argument from vrecycle().

- Remove vtryget(), it is responsible for ugly hacks and doesn't
  look that effective.

Presented on tech-kern.

Welcome to 6.99.25

Revision 1.22 / (download) - annotate - [select for diffs], Fri Oct 25 20:39:40 2013 UTC (6 years ago) by martin
Branch: MAIN
Changes since 1.21: +4 -4 lines
Diff to previous 1.21 (colored)

Mark diagnostic-only variables

Revision 1.21 / (download) - annotate - [select for diffs], Mon Sep 30 15:24:14 2013 UTC (6 years, 1 month ago) by hannken
Branch: MAIN
Changes since 1.20: +2 -6 lines
Diff to previous 1.20 (colored)

Remove VI_INACTPEND. Last consumer was vcount() which got removed 2010-01-08.

Reviewed by: David Holland <dholland@netbsd.org>

Revision 1.20 / (download) - annotate - [select for diffs], Sat Sep 21 19:51:33 2013 UTC (6 years, 2 months ago) by dholland
Branch: MAIN
Changes since 1.19: +4 -2 lines
Diff to previous 1.19 (colored)

In description of a locking mess, add reference to the PR for the bug
the mess is supposed to help with.

Revision 1.19 / (download) - annotate - [select for diffs], Wed Feb 13 14:03:48 2013 UTC (6 years, 9 months ago) by hannken
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: rmind-smpnet
Changes since 1.18: +4 -23 lines
Diff to previous 1.18 (colored)

Make the spec_node table implementation private to spec_vnops.c.

To retrieve a spec_node, two new lookup functions (by device or by mount)
are implemented.  Both return a referenced vnode, for an opened block device
the opened vnode is returned so further diagnostic checks "vp == ... sd_bdevvp"
will not fire.  Otherwise any vnode matching the criteria gets returned.

No objections on tech-kern.

Welcome to 6.99.17

Revision 1.18 / (download) - annotate - [select for diffs], Sat Feb 9 00:31:21 2013 UTC (6 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.17: +3 -3 lines
Diff to previous 1.17 (colored)

printflike maintenance.

Revision 1.17 / (download) - annotate - [select for diffs], Mon Nov 12 11:00:07 2012 UTC (7 years ago) by hannken
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7
Changes since 1.16: +38 -4 lines
Diff to previous 1.16 (colored)

Bring back Manuel Bouyers patch to resolve races between vget() and vrelel()
resulting in vget() returning dead vnodes.
It is impossible to resolve these races in vn_lock().

Needs pullup to NetBSD-6.

Revision 1.16 / (download) - annotate - [select for diffs], Fri Oct 12 21:10:55 2012 UTC (7 years, 1 month ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base6
Changes since 1.15: +16 -7 lines
Diff to previous 1.15 (colored)

Update comment on vnode life-cycle a little.

Revision 1.15 / (download) - annotate - [select for diffs], Tue Dec 20 16:49:37 2011 UTC (7 years, 11 months ago) by hannken
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, netbsd-6-base, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10
Branch point for: tls-maxphys, netbsd-6-0, netbsd-6
Changes since 1.14: +9 -9 lines
Diff to previous 1.14 (colored)

Move the diagnostic check for a missing VOP_CLOSE() to the top of vrelel().
As long as we hold the vnode interlock there is no chance for this vnode
to gain new references.

Fixes false alarms observed by Thor Lancelot Simon and reported on tech-kern.

Ok: David Holland <dholland@netbsd.org>

Revision 1.14 / (download) - annotate - [select for diffs], Fri Oct 7 09:35:06 2011 UTC (8 years, 1 month ago) by hannken
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, jmcneill-usbmp
Changes since 1.13: +4 -16 lines
Diff to previous 1.13 (colored)

As vnalloc() always allocates with PR_WAITOK there is no longer the need
to test its result for NULL.

Revision 1.13 / (download) - annotate - [select for diffs], Mon Oct 3 10:30:13 2011 UTC (8 years, 1 month ago) by hannken
Branch: MAIN
Changes since 1.12: +5 -7 lines
Diff to previous 1.12 (colored)

As getnewvnode() is prepared to wait for an allocation change vnalloc()
to always use PR_WAITOK.

No more 'WARNING: unable to allocate new vnode, retrying...' messages.

Revision 1.12 / (download) - annotate - [select for diffs], Sun Oct 2 13:00:06 2011 UTC (8 years, 1 month ago) by hannken
Branch: MAIN
Changes since 1.11: +74 -97 lines
Diff to previous 1.11 (colored)

The path getnewvnode()->getcleanvnode()->vclean()->VOP_LOCK() will panic
if the vnode we want to clean is a layered vnode and the caller already
locked its lower vnode.

Change getnewvnode() to always allocate a fresh vnode and add a helper
thread (vdrain) to keep the number of allocated vnodes within desiredvnodes.

Rename getcleanvnode() to cleanvnode() and let it take a vnode from the
lists, clean and free it.

Reviewed by: David Holland <dholland@netbsd.org>

Should fix:
PR #19110 (nullfs mounts over NFS cause lock manager problems)
PR #34102 (ffs panic in NetBSD 3.0_STABLE)
PR #45115 (lock error panic when build.sh*3 and daily script is running)
PR #45355 (Reader/writer lock error:  rw_vector_enter: locking against myself)

Revision 1.11 / (download) - annotate - [select for diffs], Thu Sep 29 20:51:38 2011 UTC (8 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.10: +17 -12 lines
Diff to previous 1.10 (colored)

rename vpanic() to vnpanic() and make it varyadic. While there, fix the
broken formats, always call panic() from vnpanic() and make all the calls
use vnpanic(). We only call vprint() on DIAGNOSTIC now.

Revision 1.10 / (download) - annotate - [select for diffs], Thu Sep 1 09:04:08 2011 UTC (8 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

Check for v_type before v_rdev because it is cheaper and safer.

Revision 1.9 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:57 2011 UTC (8 years, 5 months ago) by rmind
Branch: MAIN
Changes since 1.8: +69 -43 lines
Diff to previous 1.8 (colored)

Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.

Revision 1.8 / (download) - annotate - [select for diffs], Thu May 19 03:26:06 2011 UTC (8 years, 6 months ago) by rmind
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base
Branch point for: jruoho-x86intr, cherry-xenmp
Changes since 1.7: +51 -21 lines
Diff to previous 1.7 (colored)

Add some general description of vnode life-cycle.

Revision 1.7 / (download) - annotate - [select for diffs], Thu May 19 03:11:55 2011 UTC (8 years, 6 months ago) by rmind
Branch: MAIN
Changes since 1.6: +6 -2 lines
Diff to previous 1.6 (colored)

Remove cache_purge(9) calls from reclamation routines in the file systems,
as vclean(9) performs it for us since Lite2 merge.

Revision 1.6 / (download) - annotate - [select for diffs], Fri May 13 22:16:44 2011 UTC (8 years, 6 months ago) by rmind
Branch: MAIN
Changes since 1.5: +14 -14 lines
Diff to previous 1.5 (colored)

Sprinkle __cacheline_aligned and __read_mostly.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Apr 4 02:46:57 2011 UTC (8 years, 7 months ago) by rmind
Branch: MAIN
Branch point for: rmind-uvmplock
Changes since 1.4: +24 -29 lines
Diff to previous 1.4 (colored)

getcleanvnode: make static, add few comments, convert checks to asserts.

Revision 1.4 / (download) - annotate - [select for diffs], Sat Apr 2 07:33:49 2011 UTC (8 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.3: +21 -20 lines
Diff to previous 1.3 (colored)

KNF, slightly improve few comments.

Revision 1.3 / (download) - annotate - [select for diffs], Sat Apr 2 05:07:57 2011 UTC (8 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.2: +6 -5 lines
Diff to previous 1.2 (colored)

vfs_drainvnodes: drop lwp argument, remove variable name in prototype.

Revision 1.2 / (download) - annotate - [select for diffs], Sat Apr 2 04:45:24 2011 UTC (8 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.1: +21 -7 lines
Diff to previous 1.1 (colored)

- Move vrele_list flush notify code into vrele_flush() routine.
- Make some structures static.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Apr 2 04:28:57 2011 UTC (8 years, 7 months ago) by rmind
Branch: MAIN

Split off parts of vfs_subr.c into vfs_vnode.c and vfs_mount.c modules.

No functional change.  Discussed on tech-kern@.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>