Skip site navigation (1)Skip section navigation (2)

CVS log for src/sys/fs/nullfs/null_vnops.c

[BACK] Up to [FreeBSD] / src / sys / fs / nullfs

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.114.2.4: download - view: text, markup, annotated - select for diffs
Tue Jan 10 13:41:14 2012 UTC (4 weeks, 2 days ago) by kib
Branches: RELENG_9
Diff to: previous 1.114.2.3: preferred, colored; branchpoint 1.114: preferred, colored; next MAIN 1.115: preferred, colored
Changes since revision 1.114.2.3: +2 -6 lines
SVN rev 229932 on 2012-01-10 13:41:14Z by kib

MFC r229431:
Do the vput() for the lowervp in the null_nodeget() for error case too.
Several callers of null_nodeget() did the cleanup itself, but several
missed it, most prominent being null_bypass(). Remove the cleanup from
the callers, now null_nodeget() handles lowervp free itself.

Revision 1.114.2.3: download - view: text, markup, annotated - select for diffs
Fri Jan 6 15:07:28 2012 UTC (4 weeks, 6 days ago) by kib
Branches: RELENG_9
Diff to: previous 1.114.2.2: preferred, colored; branchpoint 1.114: preferred, colored
Changes since revision 1.114.2.2: +3 -4 lines
SVN rev 229703 on 2012-01-06 15:07:28Z by kib

MFC r227697:
Change the interface for VOP_VPTOCNP(), now the dvp must be
referenced. Convert all in-tree implementations of VOP_VPTOCNP().
This fixes VOP_VPTOCNP bypass for nullfs.

Approved by:	re (bz)

Revision 1.117: download - view: text, markup, annotated - select for diffs
Tue Jan 3 21:09:07 2012 UTC (5 weeks, 2 days ago) by kib
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.116: preferred, colored
Changes since revision 1.116: +2 -6 lines
SVN rev 229431 on 2012-01-03 21:09:07Z by kib

Do the vput() for the lowervp in the null_nodeget() for error case too.
Several callers of null_nodeget() did the cleanup itself, but several
missed it, most prominent being null_bypass(). Remove the cleanup from
the callers, now null_nodeget() handles lowervp free itself.

Reported and tested by:	pho
MFC after:	1 week

Revision 1.111.2.4: download - view: text, markup, annotated - select for diffs
Sun Jan 1 23:12:56 2012 UTC (5 weeks, 4 days ago) by kib
Branches: RELENG_8
Diff to: previous 1.111.2.3: preferred, colored; branchpoint 1.111: preferred, colored; next MAIN 1.112: preferred, colored
Changes since revision 1.111.2.3: +1 -1 lines
SVN rev 229231 on 2012-01-01 23:12:56Z by kib

MFC r227696:
Do not use NULLVPTOLOWERVP() in the null_print(). If diagnostic is compiled
in, and show vnode is used from ddb on the faulty nullfs vnode, we get
panic instead of vnode dump.

Revision 1.114.2.2: download - view: text, markup, annotated - select for diffs
Sun Jan 1 23:12:43 2012 UTC (5 weeks, 4 days ago) by kib
Branches: RELENG_9
Diff to: previous 1.114.2.1: preferred, colored; branchpoint 1.114: preferred, colored
Changes since revision 1.114.2.1: +1 -1 lines
SVN rev 229230 on 2012-01-01 23:12:43Z by kib

MFC r227696:
Do not use NULLVPTOLOWERVP() in the null_print(). If diagnostic is compiled
in, and show vnode is used from ddb on the faulty nullfs vnode, we get
panic instead of vnode dump.

Revision 1.116: download - view: text, markup, annotated - select for diffs
Sat Nov 19 07:50:49 2011 UTC (2 months, 3 weeks ago) by kib
Branches: MAIN
Diff to: previous 1.115: preferred, colored
Changes since revision 1.115: +3 -4 lines
SVN rev 227697 on 2011-11-19 07:50:49Z by kib

Existing VOP_VPTOCNP() interface has a fatal flow that is critical for
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)

Revision 1.115: download - view: text, markup, annotated - select for diffs
Sat Nov 19 07:41:37 2011 UTC (2 months, 3 weeks ago) by kib
Branches: MAIN
Diff to: previous 1.114: preferred, colored
Changes since revision 1.114: +1 -1 lines
SVN rev 227696 on 2011-11-19 07:41:37Z by kib

Do not use NULLVPTOLOWERVP() in the null_print(). If diagnostic is compiled
in, and show vnode is used from ddb on the faulty nullfs vnode, we get
panic instead of vnode dump.

MFC after:	1 week

Revision 1.114.2.1.2.1: download - view: text, markup, annotated - select for diffs
Fri Nov 11 04:20:22 2011 UTC (3 months ago) by kensmith
Branches: RELENG_9_0
CVS tags: RELENG_9_0_0_RELEASE
Diff to: previous 1.114.2.1: preferred, colored; next MAIN 1.114.2.2: preferred, colored
Changes since revision 1.114.2.1: +0 -0 lines
SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)

Revision 1.114.2.1: download - view: text, markup, annotated - select for diffs
Fri Sep 23 00:51:37 2011 UTC (4 months, 2 weeks ago) by kensmith
Branches: RELENG_9
CVS tags: RELENG_9_0_BP
Branch point for: RELENG_9_0
Diff to: previous 1.114: preferred, colored
Changes since revision 1.114: +0 -0 lines
SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)

Revision 1.95.2.3: download - view: text, markup, annotated - select for diffs
Sat Mar 5 04:33:42 2011 UTC (11 months, 1 week ago) by brucec
Branches: RELENG_7
Diff to: previous 1.95.2.2: preferred, colored; branchpoint 1.95: preferred, colored; next MAIN 1.96: preferred, colored
Changes since revision 1.95.2.2: +1 -1 lines
SVN rev 219301 on 2011-03-05 04:33:42Z by brucec

MFC r218965, r219055:

Fix typos - remove duplicate "is".

PR:           docs/154934
Submitted by: Eitan Adler <lists at eitanadler.com>

Revision 1.111.2.3: download - view: text, markup, annotated - select for diffs
Sat Feb 26 10:29:53 2011 UTC (11 months, 2 weeks ago) by brucec
Branches: RELENG_8
Diff to: previous 1.111.2.2: preferred, colored; branchpoint 1.111: preferred, colored
Changes since revision 1.111.2.2: +1 -1 lines
SVN rev 219049 on 2011-02-26 10:29:53Z by brucec

MFC r218965:

Fix typos - remove duplicate "is".

PR:		docs/154934
Submitted by:	Eitan Adler <lists at eitanadler.com>

Revision 1.114: download - view: text, markup, annotated - select for diffs
Wed Feb 23 09:22:33 2011 UTC (11 months, 2 weeks ago) by brucec
Branches: MAIN
CVS tags: RELENG_9_BP
Branch point for: RELENG_9
Diff to: previous 1.113: preferred, colored
Changes since revision 1.113: +1 -1 lines
SVN rev 218965 on 2011-02-23 09:22:33Z by brucec

Fix typos - remove duplicate "is".

PR:		docs/154934
Submitted by:	Eitan Adler <lists at eitanadler.com>
MFC after:	3 days

Revision 1.95.2.2.6.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 17:10:29 2010 UTC (13 months, 2 weeks ago) by kensmith
Branches: RELENG_7_4
CVS tags: RELENG_7_4_0_RELEASE
Diff to: previous 1.95.2.2: preferred, colored; next MAIN 1.95.2.3: preferred, colored
Changes since revision 1.95.2.2: +0 -0 lines
SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)

Revision 1.111.2.2.2.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 17:09:25 2010 UTC (13 months, 2 weeks ago) by kensmith
Branches: RELENG_8_2
CVS tags: RELENG_8_2_0_RELEASE
Diff to: previous 1.111.2.2: preferred, colored; next MAIN 1.111.2.3: preferred, colored
Changes since revision 1.111.2.2: +0 -0 lines
SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)

Revision 1.111.2.2: download - view: text, markup, annotated - select for diffs
Tue Sep 14 01:28:05 2010 UTC (16 months, 3 weeks ago) by rmacklem
Branches: RELENG_8
CVS tags: RELENG_8_2_BP
Branch point for: RELENG_8_2
Diff to: previous 1.111.2.1: preferred, colored; branchpoint 1.111: preferred, colored
Changes since revision 1.111.2.1: +27 -0 lines
SVN rev 212590 on 2010-09-14 01:28:05Z by rmacklem

MFC: r212043
Add a null_remove() function to nullfs, so that the v_usecount
of the lower level vnode is incremented to greater than 1 when
the upper level vnode's v_usecount is greater than one. This
is necessary for the NFS clients, so that they will do a silly
rename of the file instead of actually removing it when the
file is still in use. It is "racy", since the v_usecount is
incremented in many places in the kernel with
minimal synchronization, but an extraneous silly rename is
preferred to not doing a silly rename when it is required.
The only other file systems that currently check the value
of v_usecount in their VOP_REMOVE() functions are nwfs and
smbfs. These file systems choose to fail a remove when the
v_usecount is greater than 1 and I believe will function
more correctly with this patch, as well.

Revision 1.113: download - view: text, markup, annotated - select for diffs
Tue Aug 31 01:16:45 2010 UTC (17 months, 1 week ago) by rmacklem
Branches: MAIN
Diff to: previous 1.112: preferred, colored
Changes since revision 1.112: +27 -0 lines
SVN rev 212043 on 2010-08-31 01:16:45Z by rmacklem

Add a null_remove() function to nullfs, so that the v_usecount
of the lower level vnode is incremented to greater than 1 when
the upper level vnode's v_usecount is greater than one. This
is necessary for the NFS clients, so that they will do a silly
rename of the file instead of actually removing it when the
file is still in use. It is "racy", since the v_usecount is
incremented in many places in the kernel with
minimal synchronization, but an extraneous silly rename is
preferred to not doing a silly rename when it is required.
The only other file systems that currently check the value
of v_usecount in their VOP_REMOVE() functions are nwfs and
smbfs. These file systems choose to fail a remove when the
v_usecount is greater than 1 and I believe will function
more correctly with this patch, as well.

Tested by:	to.my.trociny at gmail.com
Submitted by:	to.my.trociny at gmail.com (earlier version)
Reviewed by:	kib
MFC after:	2 weeks

Revision 1.111.2.1.4.1: download - view: text, markup, annotated - select for diffs
Mon Jun 14 02:09:06 2010 UTC (19 months, 4 weeks ago) by kensmith
Branches: RELENG_8_1
CVS tags: RELENG_8_1_0_RELEASE
Diff to: previous 1.111.2.1: preferred, colored; next MAIN 1.111.2.2: preferred, colored
Changes since revision 1.111.2.1: +0 -0 lines
SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)

Revision 1.112: download - view: text, markup, annotated - select for diffs
Sun May 16 05:00:29 2010 UTC (20 months, 3 weeks ago) by kib
Branches: MAIN
Diff to: previous 1.111: preferred, colored
Changes since revision 1.111: +1 -0 lines
SVN rev 208128 on 2010-05-16 05:00:29Z by kib

Disable bypass for the vop_advlockpurge(). The vop is called after
vop_revoke(), the v_data is already destroyed.

Reported and tested by:	ed

Revision 1.95.2.2.4.1: download - view: text, markup, annotated - select for diffs
Wed Feb 10 00:26:20 2010 UTC (2 years ago) by kensmith
Branches: RELENG_7_3
CVS tags: RELENG_7_3_0_RELEASE
Diff to: previous 1.95.2.2: preferred, colored; next MAIN 1.95.2.3: preferred, colored
Changes since revision 1.95.2.2: +0 -0 lines
SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)

Revision 1.111.2.1.2.1: download - view: text, markup, annotated - select for diffs
Sun Oct 25 01:10:29 2009 UTC (2 years, 3 months ago) by kensmith
Branches: RELENG_8_0
CVS tags: RELENG_8_0_0_RELEASE
Diff to: previous 1.111.2.1: preferred, colored; next MAIN 1.111.2.2: preferred, colored
Changes since revision 1.111.2.1: +0 -0 lines
SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)

Revision 1.111.2.1: download - view: text, markup, annotated - select for diffs
Mon Aug 3 08:13:06 2009 UTC (2 years, 6 months ago) by kensmith
Branches: RELENG_8
CVS tags: RELENG_8_1_BP, RELENG_8_0_BP
Branch point for: RELENG_8_1, RELENG_8_0
Diff to: previous 1.111: preferred, colored
Changes since revision 1.111: +0 -0 lines
SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)

Revision 1.111: download - view: text, markup, annotated - select for diffs
Sun Jun 21 19:21:01 2009 UTC (2 years, 7 months ago) by kib
Branches: MAIN
CVS tags: RELENG_8_BP
Branch point for: RELENG_8
Diff to: previous 1.110: preferred, colored
Changes since revision 1.110: +2 -1 lines
SVN rev 194601 on 2009-06-21 19:21:01Z by kib

Add explicit struct ucred * argument for VOP_VPTOCNP, to be used by
vn_open_cred in default implementation. Valid struct ucred is needed for
audit and MAC, and curthread credentials may be wrong.

This further requires modifying the interface of vn_fullpath(9), but it
is out of scope of this change.

Reviewed by:	rwatson

Revision 1.110: download - view: text, markup, annotated - select for diffs
Sun May 31 14:58:43 2009 UTC (2 years, 8 months ago) by kib
Branches: MAIN
Diff to: previous 1.109: preferred, colored
Changes since revision 1.109: +50 -1 lines
SVN rev 193175 on 2009-05-31 14:58:43Z by kib

Implement the bypass routine for VOP_VPTOCNP in nullfs.
Among other things, this makes procfs <pid>/file working for executables
started from nullfs mount.

Tested by:	pho
PR:	94269, 104938

Revision 1.109: download - view: text, markup, annotated - select for diffs
Sun May 31 14:52:45 2009 UTC (2 years, 8 months ago) by kib
Branches: MAIN
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +4 -3 lines
SVN rev 193172 on 2009-05-31 14:52:45Z by kib

Lock the real null vnode lock before substitution of vp->v_vnlock.
This should not really matter for correctness, since vp->v_lock is
not locked before the call, and null_lock() holds the interlock,
but makes the control flow for reclaim more clear.

Tested by:	pho

Revision 1.108: download - view: text, markup, annotated - select for diffs
Sat May 30 13:59:05 2009 UTC (2 years, 8 months ago) by trasz
Branches: MAIN
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +27 -0 lines
SVN rev 193092 on 2009-05-30 13:59:05Z by trasz

Add VOP_ACCESSX, which can be used to query for newly added V*
permissions, such as VWRITE_ACL.  For a filsystems that don't
implement it, there is a default implementation, which works
as a wrapper around VOP_ACCESS.

Reviewed by:	rwatson@

Revision 1.95.2.2.2.1: download - view: text, markup, annotated - select for diffs
Wed Apr 15 03:14:26 2009 UTC (2 years, 9 months ago) by kensmith
Branches: RELENG_7_2
CVS tags: RELENG_7_2_0_RELEASE
Diff to: previous 1.95.2.2: preferred, colored; next MAIN 1.95.2.3: preferred, colored
Changes since revision 1.95.2.2: +0 -0 lines
SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)

Revision 1.107: download - view: text, markup, annotated - select for diffs
Wed Mar 18 13:54:35 2009 UTC (2 years, 10 months ago) by pho
Branches: MAIN
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +1 -0 lines
SVN rev 189961 on 2009-03-18 13:54:35Z by pho

Do not use null_bypass for VOP_ISLOCKED, directly call default
implementation. null_bypass cannot work for the !nullfs-vnodes, in
particular, for VBAD vnodes.

In collaboration with:	kib

Revision 1.106: download - view: text, markup, annotated - select for diffs
Fri Mar 13 07:09:20 2009 UTC (2 years, 10 months ago) by attilio
Branches: MAIN
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +0 -9 lines
SVN rev 189758 on 2009-03-13 07:09:20Z by attilio

Remove the null_islocked() overloaded vop because the standard one does
the same.

Revision 1.105: download - view: text, markup, annotated - select for diffs
Tue Mar 10 14:35:21 2009 UTC (2 years, 11 months ago) by kib
Branches: MAIN
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +1 -0 lines
SVN rev 189622 on 2009-03-10 14:35:21Z by kib

Do not use bypass for vop_vptocnp() from nullfs, call standard
implementation instead. The bypass does not assume that returned vnode
is only held.

Reported by:	Paul B. Mahol <onemda gmail com>, pluknet <pluknet gmail com>
Reviewed by:	jhb
Tested by:	pho, pluknet <pluknet gmail com>

Revision 1.104: download - view: text, markup, annotated - select for diffs
Sat Jan 31 17:36:22 2009 UTC (3 years ago) by bz
Branches: MAIN
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +0 -2 lines
SVN rev 187959 on 2009-01-31 17:36:22Z by bz

Remove unused local variables.

Submitted by:	Christoph Mallon christoph.mallon@gmx.de
Reviewed by:	kib
MFC after:	2 weeks

Revision 1.95.2.1.4.2: download - view: text, markup, annotated - select for diffs
Wed Dec 10 17:16:11 2008 UTC (3 years, 2 months ago) by kib
Branches: RELENG_7_1
CVS tags: RELENG_7_1_0_RELEASE
Diff to: previous 1.95.2.1.4.1: preferred, colored; branchpoint 1.95.2.1: preferred, colored; next MAIN 1.95.2.2: preferred, colored
Changes since revision 1.95.2.1.4.1: +4 -5 lines
SVN rev 185868 on 2008-12-10 17:16:11Z by kib

MFC r185335:
In null_lookup(), do the needed cleanup instead of panicing saying
the cleanup is needed.

Approved by:	re (kensmith)

Revision 1.95.2.2: download - view: text, markup, annotated - select for diffs
Wed Dec 10 17:00:14 2008 UTC (3 years, 2 months ago) by kib
Branches: RELENG_7
CVS tags: RELENG_7_4_BP, RELENG_7_3_BP, RELENG_7_2_BP
Branch point for: RELENG_7_4, RELENG_7_3, RELENG_7_2
Diff to: previous 1.95.2.1: preferred, colored; branchpoint 1.95: preferred, colored
Changes since revision 1.95.2.1: +4 -5 lines
SVN rev 185866 on 2008-12-10 17:00:14Z by kib

MFC r185335:
In null_lookup(), do the needed cleanup instead of panicing saying
the cleanup is needed.

Approved by:	re (kensmith)

Revision 1.103: download - view: text, markup, annotated - select for diffs
Wed Nov 26 13:41:15 2008 UTC (3 years, 2 months ago) by kib
Branches: MAIN
Diff to: previous 1.102: preferred, colored
Changes since revision 1.102: +4 -5 lines
SVN rev 185335 on 2008-11-26 13:41:15Z by kib

In null_lookup(), do the needed cleanup instead of panicing saying
the cleanup is needed.

Reported by:	kris, pho
Tested by:	pho
MFC after:	2 weeks

Revision 1.95.2.1.4.1: download - view: text, markup, annotated - select for diffs
Tue Nov 25 02:59:29 2008 UTC (3 years, 2 months ago) by kensmith
Branches: RELENG_7_1
Diff to: previous 1.95.2.1: preferred, colored
Changes since revision 1.95.2.1: +0 -0 lines
SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)

Revision 1.102: download - view: text, markup, annotated - select for diffs
Tue Oct 28 13:44:11 2008 UTC (3 years, 3 months ago) by trasz
Branches: MAIN
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +2 -2 lines
SVN rev 184413 on 2008-10-28 13:44:11Z by trasz

Introduce accmode_t.  This is required for NFSv4 ACLs - it will be neccessary
to add more V* constants, and the variables changed by this patch were often
being assigned to mode_t variables, which is 16 bit.

Approved by:	rwatson (mentor)

Revision 1.101: download - view: text, markup, annotated - select for diffs
Thu Oct 23 15:53:51 2008 UTC (3 years, 3 months ago) by des
Branches: MAIN
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +1 -1 lines
SVN rev 184205 on 2008-10-23 15:53:51Z by des

Retire the MALLOC and FREE macros.  They are an abomination unto style(9).

MFC after:	3 months

Revision 1.87.2.4.4.1: download - view: text, markup, annotated - select for diffs
Thu Oct 2 02:57:24 2008 UTC (3 years, 4 months ago) by kensmith
Branches: RELENG_6_4
CVS tags: RELENG_6_4_0_RELEASE
Diff to: previous 1.87.2.4: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87.2.4: +0 -0 lines
SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)

Revision 1.100: download - view: text, markup, annotated - select for diffs
Thu Sep 11 20:15:34 2008 UTC (3 years, 4 months ago) by ed
Branches: MAIN
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +2 -2 lines
SVN rev 182943 on 2008-09-11 20:15:34Z by ed

Fix two small typo's in comments in the nullfs vnops code.

Submitted by:	Jille Timmermans <jille quis cx>

Revision 1.99: download - view: text, markup, annotated - select for diffs
Mon Feb 25 18:45:55 2008 UTC (3 years, 11 months ago) by attilio
Branches: MAIN
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +1 -2 lines
Axe the 'thread' argument from VOP_ISLOCKED() and lockstatus() as it is
always curthread.

As KPI gets broken by this patch, manpages and __FreeBSD_version will be
updated by further commits.

Tested by:	Andrea Barberio <insomniac at slackware dot it>

Revision 1.98: download - view: text, markup, annotated - select for diffs
Thu Jan 24 12:34:26 2008 UTC (4 years ago) by attilio
Branches: MAIN
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +1 -2 lines
Cleanup lockmgr interface and exported KPI:
- Remove the "thread" argument from the lockmgr() function as it is
  always curthread now
- Axe lockcount() function as it is no longer used
- Axe LOCKMGR_ASSERT() as it is bogus really and no currently used.
  Hopefully this will be soonly replaced by something suitable for it.
- Remove the prototype for dumplockinfo() as the function is no longer
  present

Addictionally:
- Introduce a KASSERT() in lockstatus() in order to let it accept only
  curthread or NULL as they should only be passed
- Do a little bit of style(9) cleanup on lockmgr.h

KPI results heavilly broken by this change, so manpages and
FreeBSD_version will be modified accordingly by further commits.

Tested by: matteo

Revision 1.97: download - view: text, markup, annotated - select for diffs
Sun Jan 13 14:44:04 2008 UTC (4 years ago) by attilio
Branches: MAIN
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +4 -6 lines
VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in
conjuction with 'thread' argument passing which is always curthread.
Remove the unuseful extra-argument and pass explicitly curthread to lower
layer functions, when necessary.

KPI results broken by this change, which should affect several ports, so
version bumping and manpage update will be further committed.

Tested by: kris, pho, Diego Sardina <siarodx at gmail dot com>

Revision 1.87.2.4: download - view: text, markup, annotated - select for diffs
Tue Oct 23 03:38:32 2007 UTC (4 years, 3 months ago) by daichi
Branches: RELENG_6
CVS tags: RELENG_6_4_BP, RELENG_6_3_BP, RELENG_6_3_0_RELEASE, RELENG_6_3
Branch point for: RELENG_6_4
Diff to: previous 1.87.2.3: preferred, colored; branchpoint 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87.2.3: +18 -5 lines
MFC:
This changes give nullfs correctly work with latest unionfs.

Submitted by:   Masanori Ozawa <ozawa@ongs.co.jp> (unionfs developer)
Reviewed by:    jeff, kensmith
Approved by:    re (kensmith)

Revision 1.95.2.1: download - view: text, markup, annotated - select for diffs
Mon Oct 22 05:44:07 2007 UTC (4 years, 3 months ago) by daichi
Branches: RELENG_7
CVS tags: RELENG_7_1_BP, RELENG_7_0_BP, RELENG_7_0_0_RELEASE, RELENG_7_0
Branch point for: RELENG_7_1
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +18 -5 lines
MFC:
This changes give nullfs correctly work with latest unionfs.

Submitted by:   Masanori Ozawa <ozawa@ongs.co.jp> (unionfs developer)
Reviewed by:    jeff, kensmith
Approved by:    re (kensmith)

Revision 1.96: download - view: text, markup, annotated - select for diffs
Sun Oct 14 13:57:11 2007 UTC (4 years, 3 months ago) by daichi
Branches: MAIN
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +18 -5 lines
This changes give nullfs correctly work with latest unionfs.

Submitted by:   Masanori Ozawa <ozawa@ongs.co.jp> (unionfs developer)
Reviewed by:    jeff, kensmith
Approved by:    re (kensmith)
MFC after:      1 week

Revision 1.95: download - view: text, markup, annotated - select for diffs
Tue May 29 11:28:28 2007 UTC (4 years, 8 months ago) by rwatson
Branches: MAIN
CVS tags: RELENG_7_BP
Branch point for: RELENG_7
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +0 -1 lines
Where I previously removed calls to kdb_enter(), now remove include of
kdb.h.

Pointed out by:	bde

Revision 1.94: download - view: text, markup, annotated - select for diffs
Fri May 18 13:02:12 2007 UTC (4 years, 8 months ago) by kib
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +2 -2 lines
Since renaming of vop_lock to _vop_lock, pre- and post-condition
function calls are no more generated for vop_lock.
Rename _vop_lock to vop_lock1 to satisfy tools/vnode_if.awk assumption
about vop naming conventions. This restores pre/post-condition calls.

Revision 1.93: download - view: text, markup, annotated - select for diffs
Thu Feb 15 22:08:33 2007 UTC (4 years, 11 months ago) by pjd
Branches: MAIN
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +10 -0 lines
Move vnode-to-file-handle translation from vfs_vptofh to vop_vptofh method.
This way we may support multiple structures in v_data vnode field within
one file system without using black magic.

Vnode-to-file-handle should be VOP in the first place, but was made VFS
operation to keep interface as compatible as possible with SUN's VFS.
BTW. Now Solaris also implements vnode-to-file-handle as VOP operation.

VFS_VPTOFH() was left for API backward compatibility, but is marked for
removal before 8.0-RELEASE.

Approved by:	mckusick
Discussed with:	many (on IRC)
Tested with:	ufs, msdosfs, cd9660, nullfs and zfs

Revision 1.92: download - view: text, markup, annotated - select for diffs
Mon Nov 13 05:51:21 2006 UTC (5 years, 2 months ago) by kmacy
Branches: MAIN
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +2 -2 lines
change vop_lock handling to allowing tracking of callers' file and line for
acquisition of lockmgr locks

Approved by: scottl (standing in for mentor rwatson)

Revision 1.87.2.3: download - view: text, markup, annotated - select for diffs
Mon Mar 13 03:05:26 2006 UTC (5 years, 11 months ago) by jeff
Branches: RELENG_6
CVS tags: RELENG_6_2_BP, RELENG_6_2_0_RELEASE, RELENG_6_2, RELENG_6_1_BP, RELENG_6_1_0_RELEASE, RELENG_6_1
Diff to: previous 1.87.2.2: preferred, colored; branchpoint 1.87: preferred, colored
Changes since revision 1.87.2.2: +34 -9 lines
MFC Revs 1.91, 1.90
VFS SMP fixes, stack api, softupdates fixes.

Sponsored by:	Isilon Systems, Inc.
Approved by:	re (scottl)

Revision 1.91: download - view: text, markup, annotated - select for diffs
Sun Mar 12 04:58:18 2006 UTC (5 years, 11 months ago) by jeff
Branches: MAIN
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +26 -2 lines
 - Define a null_getwritemount to get the mount-point for the lower
   filesystem so that nullfs doesn't permit you to circumvent snapshots.

Discussed with:		tegge
Sponsored by:		Isilon Systems, Inc.

Revision 1.90: download - view: text, markup, annotated - select for diffs
Wed Feb 22 06:17:31 2006 UTC (5 years, 11 months ago) by jeff
Branches: MAIN
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +8 -7 lines
 - spell VOP_LOCK(vp, LK_RELEASE... VOP_UNLOCK(vp,... so that asserts in
   vop_lock_post do not trigger.
 - Rearrange null_inactive to null_hashrem earlier so there is no chance
   of finding the null node on the hash list after the locks have been
   switched.
 - We should never have a NULL lowervp in null_reclaim() so there is
   no need to handle this situation.  panic instead.

MFC After:	1 week

Revision 1.87.2.2: download - view: text, markup, annotated - select for diffs
Sat Sep 17 15:51:41 2005 UTC (6 years, 4 months ago) by delphij
Branches: RELENG_6
CVS tags: RELENG_6_0_BP, RELENG_6_0_0_RELEASE, RELENG_6_0
Diff to: previous 1.87.2.1: preferred, colored; branchpoint 1.87: preferred, colored
Changes since revision 1.87.2.1: +28 -4 lines
Oops, actually MFC 1.89 (by kan) which was missed in previous commit:

Handle a race condition where NULLFS vnode can be cleaned while threads
can still be asleep waiting for lowervp lock.

Tested by:	kkenn
Discussed with: ssouhlal, jeffr

(this is an early MFC for inclusion in the upcoming 6.0-BETA5)

Approved by:	re (scottl)

Revision 1.87.2.1: download - view: text, markup, annotated - select for diffs
Sat Sep 17 15:48:05 2005 UTC (6 years, 4 months ago) by delphij
Branches: RELENG_6
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +5 -4 lines
MFC 1.88 (by ssouhlal):

Use vput() instead of vrele() in null_reclaim() since the lower vnode
is locked.

MFC 1.89 (by kan):

Handle a race condition where NULLFS vnode can be cleaned while threads
can still be asleep waiting for lowervp lock.

Tested by:	kkenn
Discussed with: ssouhlal, jeffr

(rev. 1.89 is an early MFC for inclusion in the upcoming 6.0-BETA5)

Approved by:	re (scottl)

Revision 1.89: download - view: text, markup, annotated - select for diffs
Thu Sep 15 19:21:26 2005 UTC (6 years, 4 months ago) by kan
Branches: MAIN
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +28 -4 lines
Handle a race condition where NULLFS vnode can be cleaned while threads
can still be asleep waiting for lowervp lock.

Tested by:	kkenn
Discussed with: ssouhlal, jeffr

Revision 1.88: download - view: text, markup, annotated - select for diffs
Fri Sep 2 15:49:55 2005 UTC (6 years, 5 months ago) by ssouhlal
Branches: MAIN
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +5 -4 lines
Use vput() instead of vrele() in null_reclaim() since the lower vnode
is locked.

MFC after:	3 days

Revision 1.87: download - view: text, markup, annotated - select for diffs
Fri Apr 22 22:42:44 2005 UTC (6 years, 9 months ago) by jeff
Branches: MAIN
CVS tags: RELENG_6_BP
Branch point for: RELENG_6
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +1 -1 lines
 - As this is presently the one and only place where duplicate acquires of
   the vnode interlock are allowed mark it by passing MTX_DUPOK to this
   lock operation only.

Sponsored by:	Isilon Systems, Inc.

Revision 1.86: download - view: text, markup, annotated - select for diffs
Thu Mar 17 12:00:05 2005 UTC (6 years, 10 months ago) by jeff
Branches: MAIN
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +7 -1 lines
 - Lock the clearing of v_data so it is safe to inspect it with the
   interlock.

Sponsored by:	Isilon Systems, Inc.

Revision 1.85: download - view: text, markup, annotated - select for diffs
Tue Mar 15 13:49:33 2005 UTC (6 years, 10 months ago) by jeff
Branches: MAIN
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +41 -130 lines
 - Assume that all lower filesystems now support proper locking.  Assert
   that they set v->v_vnlock.  This is true for all filesystems in the
   tree.
 - Remove all uses of LK_THISLAYER.  If the lower layer is locked, the
   null layer is locked.  We only use vget() to get a reference now.
   null essentially does no locking.  This fixes LOOKUP_SHARED with
   nullfs.
 - Remove the special LK_DRAIN considerations, I do not believe this is
   needed now as LK_DRAIN doesn't destroy the lower vnode's lock, and
   it's hardly used anymore.
 - Add one well commented hack to prevent the lowervp from going away
   while we're in it's VOP_LOCK routine.  This can only happen if we're
   forcibly unmounted while some callers are waiting in the lock.  In
   this case the lowervp could be recycled after we drop our last ref
   in null_reclaim().  Prevent this with a vhold().

Revision 1.84: download - view: text, markup, annotated - select for diffs
Tue Mar 15 11:28:45 2005 UTC (6 years, 10 months ago) by jeff
Branches: MAIN
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +5 -0 lines
 - We have to transfer lockers after reseting our vnlock pointer.

Sponsored by:	Isilon Systems, Inc.

Revision 1.83: download - view: text, markup, annotated - select for diffs
Sun Mar 13 12:18:24 2005 UTC (6 years, 11 months ago) by jeff
Branches: MAIN
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +6 -10 lines
 - The VI_DOOMED flag now signals the end of a vnode's relationship with
   the filesystem.  Check that rather than VI_XLOCK.
 - VOP_INACTIVE should no longer drop the vnode lock.
 - The vnode lock is required around calls to vrecycle() and vgone().

Sponsored by:	Isilon Systems, Inc.

Revision 1.66.2.3: download - view: text, markup, annotated - select for diffs
Tue Mar 1 11:32:31 2005 UTC (6 years, 11 months ago) by phk
Branches: RELENG_5
CVS tags: RELENG_5_5_BP, RELENG_5_5_0_RELEASE, RELENG_5_5, RELENG_5_4_BP, RELENG_5_4_0_RELEASE, RELENG_5_4
Diff to: previous 1.66.2.2: preferred, colored; branchpoint 1.66: preferred, colored; next MAIN 1.67: preferred, colored
Changes since revision 1.66.2.2: +1 -1 lines
Revert MFC:  Do not change number of arguments to vrecycle().

Revision 1.66.2.2: download - view: text, markup, annotated - select for diffs
Mon Feb 28 11:20:43 2005 UTC (6 years, 11 months ago) by phk
Branches: RELENG_5
Diff to: previous 1.66.2.1: preferred, colored; branchpoint 1.66: preferred, colored
Changes since revision 1.66.2.1: +1 -1 lines
MFC:
	remove unused middle argument from vrecycle()

Revision 1.82: download - view: text, markup, annotated - select for diffs
Thu Feb 17 10:49:51 2005 UTC (6 years, 11 months ago) by phk
Branches: MAIN
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +2 -4 lines
Introduce vx_wait{l}() and use it instead of home-rolled versions.

Revision 1.81: download - view: text, markup, annotated - select for diffs
Mon Feb 7 09:23:34 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +1 -27 lines
Remove vop_destroyvobject()

Revision 1.66.2.1: download - view: text, markup, annotated - select for diffs
Mon Jan 31 23:25:57 2005 UTC (7 years ago) by imp
Branches: RELENG_5
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +1 -1 lines
MFC: /*- and related license changes

Revision 1.80: download - view: text, markup, annotated - select for diffs
Fri Jan 28 14:42:16 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +1 -0 lines
Make filesystems get rid of their own vnodes vnode_pager object in
VOP_RECLAIM().

Revision 1.79: download - view: text, markup, annotated - select for diffs
Fri Jan 28 13:08:19 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +1 -1 lines
Remove unused argument to vrecycle()

Revision 1.78: download - view: text, markup, annotated - select for diffs
Tue Jan 25 00:42:15 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +0 -11 lines
Take VOP_GETVOBJECT() out to pasture.  We use the direct pointer now.

Revision 1.77: download - view: text, markup, annotated - select for diffs
Mon Jan 24 23:54:45 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +0 -19 lines
Don't implement vop_createvobject(), vop_open() and vop_close() manages
this for nullfs now.

Revision 1.76: download - view: text, markup, annotated - select for diffs
Mon Jan 24 22:56:24 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +29 -0 lines
Add null_open() and null_close() which calls null_bypass() and managed
the v_object pointer.

Revision 1.75: download - view: text, markup, annotated - select for diffs
Mon Jan 24 13:13:56 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +1 -2 lines
Kill the VV_OBJBUF and test the v_object for NULL instead.

Revision 1.74: download - view: text, markup, annotated - select for diffs
Mon Jan 24 12:37:51 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +2 -2 lines
Remove "register" keywords.

Revision 1.73: download - view: text, markup, annotated - select for diffs
Mon Jan 24 11:49:41 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +15 -103 lines
Style: Remove the commented out vop_foo_args replicas.

Revision 1.72: download - view: text, markup, annotated - select for diffs
Thu Jan 13 07:53:00 2005 UTC (7 years ago) by phk
Branches: MAIN
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +1 -1 lines
Change the generated VOP_ macro implementations to improve type checking
and KASSERT coverage.

After this check there is only one "nasty" cast in this code but there
is a KASSERT to protect against the wrong argument structure behind
that cast.

Un-inlining the meat of VOP_FOO() saves 35kB of text segment on a typical
kernel with no change in performance.

We also now run the checking and tracing on VOP's which have been layered
by nullfs, umapfs, deadfs or unionfs.

    Add new (non-inline) VOP_FOO_AP() functions which take a "struct
    foo_args" argument and does everything the VOP_FOO() macros
    used to do with checks and debugging code.

    Add KASSERT to VOP_FOO_AP() check for argument type being
    correct.

    Slim down VOP_FOO() inline functions to just stuff arguments
    into the struct foo_args and call VOP_FOO_AP().

    Put function pointer to VOP_FOO_AP() into vop_foo_desc structure
    and make VCALL() use it instead of the current offsetoff() hack.

    Retire vcall() which implemented the offsetoff()

    Make deadfs and unionfs use VOP_FOO_AP() calls instead of
    VCALL(), we know which specific call we want already.

    Remove unneeded arguments to VCALL() in nullfs and umapfs bypass
    functions.

    Remove unused vdesc_offset and VOFFSET().

    Generally improve style/readability of the generated code.

Revision 1.71: download - view: text, markup, annotated - select for diffs
Mon Jan 10 13:09:33 2005 UTC (7 years, 1 month ago) by phk
Branches: MAIN
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +1 -1 lines
whitespace

Revision 1.70: download - view: text, markup, annotated - select for diffs
Thu Jan 6 18:10:39 2005 UTC (7 years, 1 month ago) by imp
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +1 -1 lines
/* -> /*- for copyright notices, minor format tweaks as necessary

Revision 1.69: download - view: text, markup, annotated - select for diffs
Wed Dec 1 23:16:33 2004 UTC (7 years, 2 months ago) by phk
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +21 -27 lines
Back when VOP_* was introduced, we did not have new-style struct
initializations but we did have lofty goals and big ideals.

Adjust to more contemporary circumstances and gain type checking.

	Replace the entire vop_t frobbing thing with properly typed
	structures.  The only casualty is that we can not add a new
	VOP_ method with a loadable module.  History has not given
	us reason to belive this would ever be feasible in the the
	first place.

	Eliminate in toto VOCALL(), vop_t, VNODEOP_SET() etc.

	Give coda correct prototypes and function definitions for
	all vop_()s.

	Generate a bit more data from the vnode_if.src file:  a
	struct vop_vector and protype typedefs for all vop methods.

	Add a new vop_bypass() and make vop_default be a pointer
	to another struct vop_vector.

	Remove a lot of vfs_init since vop_vector is ready to use
	from the compiler.

	Cast various vop_mumble() to void * with uppercase name,
	for instance VOP_PANIC, VOP_NULL etc.

	Implement VCALL() by making vdesc_offset the offsetof() the
	relevant function pointer in vop_vector.  This is disgusting
	but since the code is generated by a script comparatively
	safe.  The alternative for nullfs etc. would be much worse.

	Fix up all vnode method vectors to remove casts so they
	become typesafe.  (The bulk of this is generated by scripts)

Revision 1.68: download - view: text, markup, annotated - select for diffs
Wed Dec 1 12:24:40 2004 UTC (7 years, 2 months ago) by phk
Branches: MAIN
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +14 -14 lines
Mechanically change prototypes for vnode operations to use the new typedefs.

Revision 1.67: download - view: text, markup, annotated - select for diffs
Fri Nov 26 07:18:28 2004 UTC (7 years, 2 months ago) by phk
Branches: MAIN
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +0 -24 lines
Eliminate null_open() and use instead null_bypass().

Null_open() was only here to handle MNT_NODEV, but since that does
not affect any filesystems anymore, it could only have any effect
if you nullfs mounted a devfs but didn't want devices to show up.

If you need that, there are easier ways.

Revision 1.66: download - view: text, markup, annotated - select for diffs
Wed Apr 7 20:46:01 2004 UTC (7 years, 10 months ago) by imp
Branches: MAIN
CVS tags: RELENG_5_BP, RELENG_5_3_BP, RELENG_5_3_0_RELEASE, RELENG_5_3
Branch point for: RELENG_5
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +0 -4 lines
Remove advertising clause from University of California Regent's
license, per letter dated July 22, 1999 and email from Peter Wemm,
Alan Cox and Robert Watson.

Approved by: core, peter, alc, rwatson

Revision 1.65: download - view: text, markup, annotated - select for diffs
Sun Jan 11 23:44:32 2004 UTC (8 years, 1 month ago) by truckman
Branches: MAIN
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +1 -1 lines
Don't try to unlock the directory vnode in null_lookup() if the lock is
shared with the underlying file system and the lookup in the underlying
file system did the unlock for us.

Revision 1.64: download - view: text, markup, annotated - select for diffs
Sun Dec 28 09:12:56 2003 UTC (8 years, 1 month ago) by bde
Branches: MAIN
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +2 -2 lines
v_vxproc was a bogus name for a thread (pointer).

Revision 1.63: download - view: text, markup, annotated - select for diffs
Tue Jun 17 08:52:45 2003 UTC (8 years, 7 months ago) by tjr
Branches: MAIN
CVS tags: RELENG_5_2_BP, RELENG_5_2_1_RELEASE, RELENG_5_2_0_RELEASE, RELENG_5_2
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +57 -4 lines
MFp4: Fix two bugs causing possible deadlocks or panics, and one nit:
- Emulate lock draining (LK_DRAIN) in null_lock() to avoid deadlocks
  when the vnode is being recycled.
- Don't allow null_nodeget() to return a nullfs vnode from the wrong
  mount when multiple nullfs's are mounted. It's unclear why these checks
  were removed in null_subr.c 1.35, but they are definitely necessary.
  Without the checks, trying to unmount a nullfs mount will erroneously
  return EBUSY, and forcibly unmounting with -f will cause a panic.
- Bump LOG2_SIZEVNODE up to 8, since vnodes are >256 bytes now. The old
  value (7) didn't cause any problems, but made the hash algorithm
  suboptimal.

These changes fix nullfs enough that a parallel buildworld succeeds.

Submitted by:	tegge (partially; LK_DRAIN)
Tested by:	kris

Revision 1.62: download - view: text, markup, annotated - select for diffs
Mon Mar 3 19:15:38 2003 UTC (8 years, 11 months ago) by njl
Branches: MAIN
CVS tags: RELENG_5_1_BP, RELENG_5_1_0_RELEASE, RELENG_5_1
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +1 -2 lines
Finish cleanup of vprint() which was begun with changing v_tag to a string.
Remove extraneous uses of vop_null, instead defering to the default op.
Rename vnode type "vfs" to the more descriptive "syncer".
Fix formatting for various filesystems that use vop_print.

Revision 1.61: download - view: text, markup, annotated - select for diffs
Mon Dec 30 21:18:08 2002 UTC (9 years, 1 month ago) by schweikh
Branches: MAIN
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +1 -1 lines
Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/
Add FreeBSD Id tag where missing.

Revision 1.60: download - view: text, markup, annotated - select for diffs
Wed Oct 16 08:00:32 2002 UTC (9 years, 3 months ago) by phk
Branches: MAIN
CVS tags: RELENG_5_0_BP, RELENG_5_0_0_RELEASE, RELENG_5_0
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +1 -1 lines
Be consistent about functions being static.

Spotted by:	FlexeLint

Revision 1.59: download - view: text, markup, annotated - select for diffs
Mon Oct 14 03:20:33 2002 UTC (9 years, 3 months ago) by mckusick
Branches: MAIN
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +1 -0 lines
Regularize the vop_stdlock'ing protocol across all the filesystems
that use it. Specifically, vop_stdlock uses the lock pointed to by
vp->v_vnlock. By default, getnewvnode sets up vp->v_vnlock to
reference vp->v_lock. Filesystems that wish to use the default
do not need to allocate a lock at the front of their node structure
(as some still did) or do a lockinit. They can simply start using
vn_lock/VOP_UNLOCK. Filesystems that wish to manage their own locks,
but still use the vop_stdlock functions (such as nullfs) can simply
replace vp->v_vnlock with a pointer to the lock that they wish to
have used for the vnode. Such filesystems are responsible for
setting the vp->v_vnlock back to the default in their vop_reclaim
routine (e.g., vp->v_vnlock = &vp->v_lock).

In theory, this set of changes cleans up the existing filesystem
lock interface and should have no function change to the existing
locking scheme.

Sponsored by:	DARPA & NAI Labs.

Revision 1.58: download - view: text, markup, annotated - select for diffs
Sat Sep 14 09:02:23 2002 UTC (9 years, 4 months ago) by njl
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +2 -1 lines
Remove all use of vnode->v_tag, replacing with appropriate substitutes.
v_tag is now const char * and should only be used for debugging.

Additionally:
1. All users of VT_NTS now check vfsconf->vf_type VFCF_NETWORK
2. The user of VT_PROCFS now checks for the new flag VV_PROCDEP, which
is propagated by pseudofs to all child vnodes if the fs sets PFS_PROCDEP.

Suggested by:   phk
Reviewed by:    bde, rwatson (earlier version)

Revision 1.57: download - view: text, markup, annotated - select for diffs
Sun Aug 4 10:29:29 2002 UTC (9 years, 6 months ago) by jeff
Branches: MAIN
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +2 -2 lines
 - Replace v_flag with v_iflag and v_vflag
 - v_vflag is protected by the vnode lock and is used when synchronization
   with VOP calls is needed.
 - v_iflag is protected by interlock and is used for dealing with vnode
   management issues.  These flags include X/O LOCK, FREE, DOOMED, etc.
 - All accesses to v_iflag and v_vflag have either been locked or marked with
   mp_fixme's.
 - Many ASSERT_VOP_LOCKED calls have been added where the locking was not
   clear.
 - Many functions in vfs_subr.c were restructured to provide for stronger
   locking.

Idea stolen from:	BSD/OS

Revision 1.56: download - view: text, markup, annotated - select for diffs
Thu Jun 13 21:49:09 2002 UTC (9 years, 8 months ago) by semenu
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +13 -6 lines
Fix a race during null node creation between relookuping the hash and
adding vnode to hash. The fix is to use atomic hash-lookup-and-add-if-
not-found operation. The odd thing is that this race can't happen
actually because the lowervp vnode is locked exclusively now during the
whole process of null node creation. This must be thought as a step
toward shared lookups.

Also remove vp->v_mount checks when looking for a match in the hash,
as this is the vestige.

Also add comments and cosmetic changes.

Revision 1.55: download - view: text, markup, annotated - select for diffs
Thu Jun 13 18:25:06 2002 UTC (9 years, 8 months ago) by semenu
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +6 -13 lines
Fix the "error" path (when dropping not fully initialized vnode).
Also move hash operations out of null_vnops.c and explicitly initialize
v_lock in null_node_alloc (to set wmesg).

Reviewed by:	bp
MFC after:	2 weeks

Revision 1.54: download - view: text, markup, annotated - select for diffs
Thu Jun 13 17:30:40 2002 UTC (9 years, 8 months ago) by semenu
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +7 -10 lines
Fix wrong locking in null_inactive and null_reclaim. This makes nullfs
relatively working back.

Reviewed by:	mckusick, bp

Revision 1.53: download - view: text, markup, annotated - select for diffs
Tue May 21 18:07:33 2002 UTC (9 years, 8 months ago) by semenu
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +6 -2 lines
Fix null_lock() not unlocking vp->v_interlock if LK_THISLAYER.

Reviewed by:	bp@FreeBSD.org
MFC after:	1 week

Revision 1.52: download - view: text, markup, annotated - select for diffs
Thu May 16 21:25:40 2002 UTC (9 years, 8 months ago) by trhodes
Branches: MAIN
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +7 -7 lines
More s/file system/filesystem/g

Revision 1.51: download - view: text, markup, annotated - select for diffs
Mon Mar 18 05:39:04 2002 UTC (9 years, 10 months ago) by mckusick
Branches: MAIN
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +27 -20 lines
Cannot release vnode underlying the nullfs vnode in null_inactive
as it leaves the nullfs vnode allocated, but with no identity. The
effect is that a null mount can slowly accumulate all the vnodes
in the system, reclaiming them only when it is unmounted. Thus
the null_inactive state instead accelerates the release of the
null vnode by calling vrecycle which will in turn call the
null_reclaim operator. The null_reclaim routine then does the
freeing actions previosuly (incorrectly) done in null_inactive.

Revision 1.50: download - view: text, markup, annotated - select for diffs
Wed Sep 12 08:37:19 2001 UTC (10 years, 5 months ago) by julian
Branches: MAIN
CVS tags: KSE_MILESTONE_2
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +36 -36 lines
KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.

Sorry john! (your next MFC will be a doosie!)

Reviewed by: peter@freebsd.org, dillon@freebsd.org

X-MFC after:    ha ha ha ha

Revision 1.49: download - view: text, markup, annotated - select for diffs
Thu May 24 13:17:47 2001 UTC (10 years, 8 months ago) by ru
Branches: MAIN
CVS tags: KSE_PRE_MILESTONE_2
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +5 -5 lines
mount_null(8) -> mount_nullfs(8).

Revision 1.48: download - view: text, markup, annotated - select for diffs
Wed May 23 09:42:10 2001 UTC (10 years, 8 months ago) by ru
Branches: MAIN
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +2 -2 lines
- FDESC, FIFO, NULL, PORTAL, PROC, UMAP and UNION file
  systems were repo-copied from sys/miscfs to sys/fs.

- Renamed the following file systems and their modules:
  fdesc -> fdescfs, portal -> portalfs, union -> unionfs.

- Renamed corresponding kernel options:
  FDESC -> FDESCFS, PORTAL -> PORTALFS, UNION -> UNIONFS.

- Install header files for the above file systems.

- Removed bogus -I${.CURDIR}/../../sys CFLAGS from userland
  Makefiles.

Revision 1.47: download - view: text, markup, annotated - select for diffs
Tue May 1 08:13:08 2001 UTC (10 years, 9 months ago) by markm
Branches: MAIN
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +8 -5 lines
Undo part of the tangle of having sys/lock.h and sys/mutex.h included in
other "system" header files.

Also help the deprecation of lockmgr.h by making it a sub-include of
sys/lock.h and removing sys/lockmgr.h form kernel .c files.

Sort sys/*.h includes where possible in affected files.

OK'ed by:	bde (with reservations)

Revision 1.46: download - view: text, markup, annotated - select for diffs
Fri Feb 9 06:10:03 2001 UTC (11 years ago) by bmilekic
Branches: MAIN
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +3 -3 lines
Change and clean the mutex lock interface.

mtx_enter(lock, type) becomes:

mtx_lock(lock) for sleep locks (MTX_DEF-initialized locks)
mtx_lock_spin(lock) for spin locks (MTX_SPIN-initialized)

similarily, for releasing a lock, we now have:

mtx_unlock(lock) for MTX_DEF and mtx_unlock_spin(lock) for MTX_SPIN.
We change the caller interface for the two different types of locks
because the semantics are entirely different for each case, and this
makes it explicitly clear and, at the same time, it rids us of the
extra `type' argument.

The enter->lock and exit->unlock change has been made with the idea
that we're "locking data" and not "entering locked code" in mind.

Further, remove all additional "flags" previously passed to the
lock acquire/release routines with the exception of two:

MTX_QUIET and MTX_NOSWITCH

The functionality of these flags is preserved and they can be passed
to the lock/unlock routines by calling the corresponding wrappers:

mtx_{lock, unlock}_flags(lock, flag(s)) and
mtx_{lock, unlock}_spin_flags(lock, flag(s)) for MTX_DEF and MTX_SPIN
locks, respectively.

Re-inline some lock acq/rel code; in the sleep lock case, we only
inline the _obtain_lock()s in order to ensure that the inlined code
fits into a cache line. In the spin lock case, we inline recursion and
actually only perform a function call if we need to spin. This change
has been made with the idea that we generally tend to avoid spin locks
and that also the spin locks that we do have and are heavily used
(i.e. sched_lock) do recurse, and therefore in an effort to reduce
function call overhead for some architectures (such as alpha), we
inline recursion for this case.

Create a new malloc type for the witness code and retire from using
the M_DEV type. The new type is called M_WITNESS and is only declared
if WITNESS is enabled.

Begin cleaning up some machdep/mutex.h code - specifically updated the
"optimized" inlined code in alpha/mutex.h and wrote MTX_LOCK_SPIN
and MTX_UNLOCK_SPIN asm macros for the i386/mutex.h as we presently
need those.

Finally, caught up to the interface changes in all sys code.

Contributors: jake, jhb, jasone (in no particular order)

Revision 1.45: download - view: text, markup, annotated - select for diffs
Sun Oct 29 13:56:56 2000 UTC (11 years, 3 months ago) by phk
Branches: MAIN
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +1 -2 lines
Remove unneeded #include <sys/proc.h> lines.

Revision 1.38.2.2: download - view: text, markup, annotated - select for diffs
Wed Oct 25 04:26:30 2000 UTC (11 years, 3 months ago) by bp
Branches: old_RELENG_4
CVS tags: old_RELENG_4_3_BP, old_RELENG_4_3_0_RELEASE, old_RELENG_4_3, old_RELENG_4_2_0_RELEASE
Diff to: previous 1.38.2.1: preferred, colored; branchpoint 1.38: preferred, colored; next MAIN 1.39: preferred, colored
Changes since revision 1.38.2.1: +19 -6 lines
MFC:
protect nullfs node hash with lockmgr().
properly release vnode if mount deadlock detected.
give nullfs node its own malloc type.

Revision 1.38.2.1: download - view: text, markup, annotated - select for diffs
Wed Oct 25 03:35:12 2000 UTC (11 years, 3 months ago) by bp
Branches: old_RELENG_4
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +11 -11 lines
MFC: Get rid from the __P() macro. Replace 'extern' with function prototype.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Sun Oct 15 06:25:42 2000 UTC (11 years, 3 months ago) by bp
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +6 -4 lines
Fix nullfs breakage caused by incomplete migration of v_interlock from
simple_lock to mutex.

Reset LK_INTERLOCK flag when interlock released manually.

Revision 1.43: download - view: text, markup, annotated - select for diffs
Tue Oct 3 04:25:53 2000 UTC (11 years, 4 months ago) by bp
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +8 -2 lines
Prevent dereference of NULL pointer when null_lock() and null_unlock()
called and there is no underlying vnode.

Revision 1.42: download - view: text, markup, annotated - select for diffs
Mon Sep 25 15:38:32 2000 UTC (11 years, 4 months ago) by bp
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +229 -66 lines
Fix vnode locking bugs in the nullfs.
Add correct support for v_object management, so mmap() operation should
work properly.
Add support for extattrctl() routine (submitted by semenu).

At this point nullfs can be considered as functional and much more stable.
In fact, it should behave as a "hard" "symlink" to underlying filesystem.

Reviewed in general by:		mckusick, dillon
Parts of logic obtained from:	NetBSD

Revision 1.41: download - view: text, markup, annotated - select for diffs
Tue Sep 5 09:02:07 2000 UTC (11 years, 5 months ago) by bp
Branches: MAIN
CVS tags: old_PRE_SMPNG
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +72 -2 lines
Various cleanups towards make nullfs functional (it is still broken
at this point):

Replace all '#ifdef DEBUG' with '#ifdef NULLFS_DEBUG' and add NULLFSDEBUG
macro.

Protect nullfs hash table with lockmgr.

Use proper order of operations when freeing mnt_data.

Return correct fsid in the null_getattr().

Add null_open() function to catch MNT_NODEV (obtained from NetBSD).

Add null_rename() to catch cross-fs rename operations (submitted by
Ustimenko Semen <semen@iclub.nsu.ru>)

Remove duplicate $FreeBSD$ tags.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Tue Sep 5 07:54:39 2000 UTC (11 years, 5 months ago) by bp
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +11 -11 lines
Get rid from the __P() macros.

Encouraged by:	peter

Revision 1.39: download - view: text, markup, annotated - select for diffs
Tue Apr 18 15:15:23 2000 UTC (11 years, 9 months ago) by phk
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +2 -3 lines
Remove unneeded <sys/buf.h> includes.

Due to some interesting cpp tricks in lockmgr, the LINT kernel shrinks
by 924 bytes.

Revision 1.38: download - view: text, markup, annotated - select for diffs
Sat Dec 11 16:12:56 1999 UTC (12 years, 2 months ago) by eivind
Branches: MAIN
CVS tags: old_RELENG_4_BP, old_RELENG_4_1_1_RELEASE, old_RELENG_4_1_0_RELEASE, old_RELENG_4_0_0_RELEASE
Branch point for: old_RELENG_4
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +4 -4 lines
Lock reporting and assertion changes.
* lockstatus() and VOP_ISLOCKED() gets a new process argument and a new
  return value: LK_EXCLOTHER, when the lock is held exclusively by another
  process.
* The ASSERT_VOP_(UN)LOCKED family is extended to use what this gives them
* Extend the vnode_if.src format to allow more exact specification than
  locked/unlocked.

This commit should not do any semantic changes unless you are using
DEBUG_VFS_LOCKS.

Discussed with:	grog, mch, peter, phk
Reviewed by:	peter

Revision 1.8.4.1: download - view: text, markup, annotated - select for diffs
Sun Sep 5 08:33:25 1999 UTC (12 years, 5 months ago) by peter
Branches: old_RELENG_2_1_0
Diff to: previous 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8: +1 -1 lines
$Id$ -> $FreeBSD$

Revision 1.11.4.1: download - view: text, markup, annotated - select for diffs
Sun Sep 5 08:16:43 1999 UTC (12 years, 5 months ago) by peter
Branches: old_RELENG_2_2
Diff to: previous 1.11: preferred, colored; next MAIN 1.12: preferred, colored
Changes since revision 1.11: +1 -1 lines
$Id$ -> $FreeBSD$

Revision 1.37: download - view: text, markup, annotated - select for diffs
Sat Sep 4 12:35:09 1999 UTC (12 years, 5 months ago) by bde
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +2 -4 lines
Get rid of the NULLFS_DIAGNOSTIC option.  This option was as useful as
the other XXXFS_DIAGNOSTIC options (not very) and mostly controlled
tracing of normal operation.  Use `#ifdef DEBUG' for non-diagnostics
and `#ifdef DIAGNOSTIC' for diagnostics.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Mon Aug 30 07:08:03 1999 UTC (12 years, 5 months ago) by bde
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +4 -5 lines
Converted the silly SAFTEY option into a new-style option by renaming it to
DIAGNOSTIC.

Fixed an English style bug in the panic messages controlled by SAFETY.

Revision 1.30.2.1: download - view: text, markup, annotated - select for diffs
Sun Aug 29 16:26:47 1999 UTC (12 years, 5 months ago) by peter
Branches: old_RELENG_3
CVS tags: old_RELENG_3_5_0_RELEASE, old_RELENG_3_4_0_RELEASE, old_RELENG_3_3_0_RELEASE
Diff to: previous 1.30: preferred, colored; next MAIN 1.31: preferred, colored
Changes since revision 1.30: +2 -2 lines
$Id$ -> $FreeBSD$

Revision 1.35: download - view: text, markup, annotated - select for diffs
Sat Aug 28 00:46:51 1999 UTC (12 years, 5 months ago) by peter
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +2 -2 lines
$Id$ -> $FreeBSD$

Revision 1.34: download - view: text, markup, annotated - select for diffs
Fri Jul 2 16:29:43 1999 UTC (12 years, 7 months ago) by phk
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +2 -4 lines
Make sure that stat(2) and friends always return a valid st_dev field.

Pseudo-FS need not fill in the va_fsid anymore, the syscall code
will use the first half of the fsid, which now looks like a udev_t
with major 255.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Wed Jun 16 23:27:38 1999 UTC (12 years, 7 months ago) by mckusick
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +2 -56 lines
Add a vnode argument to VOP_BWRITE to get rid of the last vnode
operator special case. Delete special case code from vnode_if.sh,
vnode_if.src, umap_vnops.c, and null_vnops.c.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Thu Jan 28 00:57:50 1999 UTC (13 years ago) by dillon
Branches: MAIN
CVS tags: old_PRE_VFS_BIO_NFS_PATCH, old_PRE_SMP_VMSHARE, old_PRE_NEWBUS, old_POST_VFS_BIO_NFS_PATCH, old_POST_SMP_VMSHARE, old_POST_NEWBUS
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +3 -3 lines
    Fix warnings in preparation for adding -Wall -Wcast-qual to the
    kernel compile

Revision 1.31: download - view: text, markup, annotated - select for diffs
Wed Jan 27 22:42:06 1999 UTC (13 years ago) by dillon
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +4 -2 lines
        Fix warnings in preparation for adding -Wall -Wcast-qual to the
        kernel compile

Revision 1.30: download - view: text, markup, annotated - select for diffs
Mon Dec 7 21:58:32 1998 UTC (13 years, 2 months ago) by archie
Branches: MAIN
CVS tags: old_RELENG_3_BP, old_RELENG_3_2_PAO_BP, old_RELENG_3_2_PAO, old_RELENG_3_2_0_RELEASE, old_RELENG_3_1_0_RELEASE
Branch point for: old_RELENG_3
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +2 -4 lines
The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static
and local variables, goto labels, and functions declared but not defined.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sat Jul 4 20:45:33 1998 UTC (13 years, 7 months ago) by julian
Branches: MAIN
CVS tags: old_RELENG_3_0_0_RELEASE, old_PRE_NOBDEV
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +3 -3 lines
VOP_STRATEGY grows an (struct vnode *) argument
as the value in b_vp is often not really what you want.
(and needs to be frobbed). more cleanups will follow this.
Reviewed by: Bruce Evans <bde@freebsd.org>

Revision 1.28: download - view: text, markup, annotated - select for diffs
Wed Jun 10 06:34:56 1998 UTC (13 years, 8 months ago) by peter
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +4 -2 lines
Don't silently accept attempts to change flags where they are not
supported.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Fri Apr 17 22:36:54 1998 UTC (13 years, 9 months ago) by des
Branches: MAIN
CVS tags: old_PRE_DEVFS_SLICE, old_POST_DEVFS_SLICE
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +3 -3 lines
Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Sat Jan 31 07:23:13 1998 UTC (14 years ago) by eivind
Branches: MAIN
CVS tags: old_PRE_SOFTUPDATE, old_POST_SOFTUPDATE
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +4 -2 lines
Make the debug options new-style.

This also zaps a DPT option from lint; it wasn't referenced from
anywhere.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Tue Oct 21 21:01:34 1997 UTC (14 years, 3 months ago) by roberto
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +8 -2 lines
Fix the file leak bug. The lower layer wasn't informed the vnode was inactive
and kept a reference, preventing the blocks to be reclaimed.

Changed the comment in null_inactive to reflect the current situation.

Reviewed by:	phk

Revision 1.24: download - view: text, markup, annotated - select for diffs
Wed Oct 15 10:04:31 1997 UTC (14 years, 3 months ago) by phk
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +4 -4 lines
Hmm, realign the vnops into two columns.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Wed Oct 15 09:21:07 1997 UTC (14 years, 3 months ago) by phk
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +14 -17 lines
Stylistic overhaul of vnops tables.
        1. Remove comment stating the blatantly obvious.
        2. Align in two columns.
        3. Sort all but the default element alphabetically.
        4. Remove XXX comments pointing out entries not needed.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Thu Sep 18 18:33:18 1997 UTC (14 years, 4 months ago) by phk
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +4 -3 lines
Executing binaries on a nullfs (or nullfs-based) filesystem results in
a trap.
PR:		3104
Reviewed by:	phk
Submitted by:	Dan Walters hannibal@cyberstation.net

Revision 1.21: download - view: text, markup, annotated - select for diffs
Sat Aug 2 14:32:05 1997 UTC (14 years, 6 months ago) by bde
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +2 -5 lines
Removed unused #includes.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Thu Jun 26 17:12:59 1997 UTC (14 years, 7 months ago) by alex
Branches: MAIN
CVS tags: old_WOLLMAN_MBUF, old_BP_WOLLMAN_MBUF
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +5 -5 lines
More comment cleanup.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu Jun 26 16:13:56 1997 UTC (14 years, 7 months ago) by alex
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +3 -3 lines
Typo police.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun May 25 04:50:02 1997 UTC (14 years, 8 months ago) by peter
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +2 -3 lines
Fix some warnings (missing prototypes, wrong "generic" args etc)
umapfs uses one of nullfs's functions...

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu Apr 17 11:17:30 1997 UTC (14 years, 9 months ago) by kato
Branches: MAIN
CVS tags: old_pre_smp_merge, old_post_smp_merge
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +6 -6 lines
Use NULLVP instead of NULL.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Sat Feb 22 09:40:22 1997 UTC (14 years, 11 months ago) by peter
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +2 -2 lines
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$.  We are not
ready for it yet.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Wed Feb 12 18:06:08 1997 UTC (15 years ago) by mpp
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +7 -7 lines
Eliminate the last of the compile warnings in this module by
correctly casting the arguments to all of the null_bypass() calls.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Wed Feb 12 14:55:01 1997 UTC (15 years ago) by mpp
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +11 -6 lines
Make this compile again after the Lite2 merge.
Also add missing function prototypes.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Mon Feb 10 02:13:30 1997 UTC (15 years ago) by dyson
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +206 -17 lines
This is the kernel Lite/2 commit.  There are some requisite userland
changes, so don't expect to be able to run the kernel as-is (very well)
without the appropriate Lite/2 userland changes.

The system boots and can mount UFS filesystems.

Untested: ext2fs, msdosfs, NFS
Known problems: Incorrect Berkeley ID strings in some files.
		Mount_std mounts will not work until the getfsent
		library routine is changed.

Reviewed by:	various people
Submitted by:	Jeffery Hsu <hsu@freebsd.org>

Revision 1.12: download - view: text, markup, annotated - select for diffs
Tue Jan 14 06:46:13 1997 UTC (15 years ago) by jkh
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +1 -1 lines
Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.

Revision 1.1.1.2 (vendor branch): download - view: text, markup, annotated - select for diffs
Mon Mar 11 19:29:04 1996 UTC (15 years, 11 months ago) by peter
Branches: old_CSRG
CVS tags: old_bsd_44_lite_2
Diff to: previous 1.1.1.1: preferred, colored
Changes since revision 1.1.1.1: +195 -12 lines
Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all
files are off the vendor branch, so this should not change anything.

A "U" marker generally means that the file was not changed in between
the 4.4Lite and Lite-2 releases, and does not need a merge.  "C" generally
means that there was a change.
[two new auxillary files in miscfs/union]

Revision 1.11: download - view: text, markup, annotated - select for diffs
Mon Dec 11 09:24:38 1995 UTC (16 years, 2 months ago) by phk
Branches: MAIN
CVS tags: old_wollman_polling, old_RELENG_2_2_BP, old_RELENG_2_2_8_RELEASE, old_RELENG_2_2_7_RELEASE, old_RELENG_2_2_6_RELEASE, old_RELENG_2_2_5_RELEASE, old_RELENG_2_2_2_RELEASE, old_RELENG_2_2_1_RELEASE, old_RELENG_2_2_0_RELEASE
Branch point for: old_RELENG_2_2
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +22 -19 lines
Staticize.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Sun Dec 3 14:54:24 1995 UTC (16 years, 2 months ago) by bde
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +9 -2 lines
Added prototypes.

Removed some unnecessary #includes.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Thu Nov 9 08:14:51 1995 UTC (16 years, 3 months ago) by bde
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +10 -10 lines
Introduced a type `vop_t' for vnode operation functions and used
it 1138 times (:-() in casts and a few more times in declarations.
This change is null for the i386.

The type has to be `typedef int vop_t(void *)' and not `typedef
int vop_t()' because `gcc -Wstrict-prototypes' warns about the
latter.  Since vnode op functions are called with args of different
(struct pointer) types, neither of these function types is any use
for type checking of the arg, so it would be preferable not to use
the complete function type, especially since using the complete
type requires adding 1138 casts to avoid compiler warnings and
another 40+ casts to reverse the function pointer conversions before
calling the functions.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Tue May 30 08:07:03 1995 UTC (16 years, 8 months ago) by rgrimes
Branches: MAIN
CVS tags: old_RELENG_2_1_7_RELEASE, old_RELENG_2_1_6_RELEASE, old_RELENG_2_1_6_1_RELEASE, old_RELENG_2_1_5_RELEASE, old_RELENG_2_1_0_RELEASE, old_RELENG_2_1_0_BP, old_RELENG_2_0_5_RELEASE, old_RELENG_2_0_5_BP, old_RELENG_2_0_5
Branch point for: old_RELENG_2_1_0
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +9 -9 lines
Remove trailing whitespace.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Sun Mar 19 14:28:54 1995 UTC (16 years, 10 months ago) by davidg
Branches: MAIN
CVS tags: old_RELENG_2_0_5_ALPHA
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -2 lines
Removed redundant newlines that were in some panic strings.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Oct 10 07:55:29 1994 UTC (17 years, 4 months ago) by phk
Branches: MAIN
CVS tags: old_RELEASE_2_0, old_OLAH_TTCP, old_BETA_2_0, old_ALPHA_2_0
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +4 -3 lines
Cosmetics.  reduce the noise from gcc -Wall.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Wed Sep 21 23:22:41 1994 UTC (17 years, 4 months ago) by wollman
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -1 lines
Fix a few niggling little bugs:

- set args->lkm_offset correctly so that VFS modules can be unloaded
- initialize _fs_vfsops.vfc_refcount correctly so that VFS modules can
  be unloaded
- include kernel.h in a few placves to get the correct definition of DATA_SET

Revision 1.4: download - view: text, markup, annotated - select for diffs
Wed Sep 21 03:47:02 1994 UTC (17 years, 4 months ago) by wollman
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +3 -1 lines
Implemented loadable VFS modules, and made most existing filesystems
loadable.  (NFS is a notable exception.)

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sat Aug 20 03:48:51 1994 UTC (17 years, 5 months ago) by davidg
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +1 -2 lines
1) cleaned up after Garrett - fixed more redundant declarations, changed
   use of timeout_t -> timeout_func_t in aha1542 and aha1742 drivers.
2) fix a bug in the portalfs that was uncovered by better prototyping -
   specifically, the time must be converted from timeval to timespec
   before storing in va_atime.
3) fixed/added some miscellaneous prototypes

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Aug 2 07:45:06 1994 UTC (17 years, 6 months ago) by davidg
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +1 -5 lines
Added $Id$

Revision 1.1.1.1 (vendor branch): download - view: text, markup, annotated - select for diffs
Tue May 24 10:05:03 1994 UTC (17 years, 8 months ago) by rgrimes
Branches: old_CSRG
CVS tags: old_bsd_44_lite, old_REL_before_johndavid_2_0_0
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +0 -0 lines
BSD 4.4 Lite Kernel Sources

Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue May 24 10:05:02 1994 UTC (17 years, 8 months ago) by rgrimes
Branches: MAIN
Initial revision

Diff request

This form allows you to request diffs 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.

Log view options