| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
by removing files from src/sys/coda, and updating include paths in the
new location, kernel configuration, and Makefiles. In one case add
$FreeBSD$.
Discussed with: anderson, Jan Harkes <jaharkes@cs.cmu.edu>
Approved by: re (kensmith)
Repo-copy madness: simon
Notes:
svn path=/head/; revision=171416
|
|
|
|
|
|
|
|
|
| |
the filesystem. Check that rather than VI_XLOCK.
Sponsored by: Isilon Systems, Inc.
Notes:
svn path=/head/; revision=143510
|
|
|
|
| |
Notes:
svn path=/head/; revision=139745
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
our cached 'next vnode' being removed from this mountpoint. If we
find that it was recycled, we restart our traversal from the start
of the list.
Code to do that is in all local disk filesystems (and a few other
places) and looks roughly like this:
MNT_ILOCK(mp);
loop:
for (vp = TAILQ_FIRST(&mp...);
(vp = nvp) != NULL;
nvp = TAILQ_NEXT(vp,...)) {
if (vp->v_mount != mp)
goto loop;
MNT_IUNLOCK(mp);
...
MNT_ILOCK(mp);
}
MNT_IUNLOCK(mp);
The code which takes vnodes off a mountpoint looks like this:
MNT_ILOCK(vp->v_mount);
...
TAILQ_REMOVE(&vp->v_mount->mnt_nvnodelist, vp, v_nmntvnodes);
...
MNT_IUNLOCK(vp->v_mount);
...
vp->v_mount = something;
(Take a moment and try to spot the locking error before you read on.)
On a SMP system, one CPU could have removed nvp from our mountlist
but not yet gotten to assign a new value to vp->v_mount while another
CPU simultaneously get to the top of the traversal loop where it
finds that (vp->v_mount != mp) is not true despite the fact that
the vnode has indeed been removed from our mountpoint.
Fix:
Introduce the macro MNT_VNODE_FOREACH() to traverse the list of
vnodes on a mountpoint while taking into account that vnodes may
be removed from the list as we go. This saves approx 65 lines of
duplicated code.
Split the insmntque() which potentially moves a vnode from one mount
point to another into delmntque() and insmntque() which does just
what the names say.
Fix delmntque() to set vp->v_mount to NULL while holding the
mountpoint lock.
Notes:
svn path=/head/; revision=131551
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce two new macros MNT_ILOCK(mp)/MNT_IUNLOCK(mp) to
operate on this mutex transparently.
Eventually new mutex will be protecting more fields in
struct mount, not only vnode list.
Discussed with: jeff
Notes:
svn path=/head/; revision=122091
|
|
|
|
|
|
|
|
| |
Fixed a nearby style bug. The include of vcoda.h used angle brackets and
was not used.
Notes:
svn path=/head/; revision=120794
|
|
|
|
| |
Notes:
svn path=/head/; revision=120784
|
|
|
|
|
|
|
|
| |
because we do not drop the mntvnode_mtx. If this code had ever executed
and hit the loop condition it would have spun forever.
Notes:
svn path=/head/; revision=120735
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FIDs to be 128-bits wide and adds support for realms.
Add a new CODA_COMPAT_5 option, which requests support for the old
Coda 5.x interface instead of the new one.
Create a new coda5.ko module that supports the 5.x interface, and make
the existing coda.ko module use the new 6.x interface. These modules
cannot both be loaded at the same time.
Obtained from: Jan Harkes & the coda-6.0.2 distribution,
NetBSD (drochner) (CODA_COMPAT_5 option).
Notes:
svn path=/head/; revision=119832
|
|
|
|
| |
Notes:
svn path=/head/; revision=116173
|
|
|
|
| |
Notes:
svn path=/head/; revision=103937
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
Notes:
svn path=/head/; revision=101308
|
|
|
|
| |
Notes:
svn path=/head/; revision=96755
|
|
|
|
|
|
|
| |
3.2 drops the ball.
Notes:
svn path=/head/; revision=95094
|
|
|
|
|
|
|
|
|
| |
in preparation for an implementation of limiting code for kern.maxvnodes.
MFC after: 3 days
Notes:
svn path=/head/; revision=85339
|
|
|
|
|
|
|
|
| |
<sys/mount.h> in rev.1.106 of the latter (don't include <sys/socket.h>
just to work around bugs in <sys/mount.h>).
Notes:
svn path=/head/; revision=84873
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
Notes:
svn path=/head/; revision=76166
|
|
|
|
| |
Notes:
svn path=/head/; revision=75877
|
|
|
|
|
|
|
|
|
|
| |
fondling implementation details.
Created with: sed(1)
Reviewed by: md5(1)
Notes:
svn path=/head/; revision=71999
|
|
|
|
| |
Notes:
svn path=/head/; revision=70833
|
|
|
|
| |
Notes:
svn path=/head/; revision=67882
|
|
|
|
| |
Notes:
svn path=/head/; revision=50477
|
|
|
|
| |
Notes:
svn path=/head/; revision=48960
|
|
|
|
| |
Notes:
svn path=/head/; revision=42763
|
|
|
|
|
|
|
|
|
| |
a creat so that we can will allow a mode 444 file to be
written into. Sync with the latest coda.h and deal with
collateral damage.
Notes:
svn path=/head/; revision=40706
|
|
|
|
|
|
|
|
| |
1. use VFS_LKM vs ACTUALLY_LKM_NOT_KERNEL
2. don't pass -DCODA to lkm build
Notes:
svn path=/head/; revision=39778
|
|
|
|
|
|
|
|
| |
with DEBUG on. Add support for lkm. (The macro's don't work
for me; for a good chuckle look at the end of coda_fbsd.c.)
Notes:
svn path=/head/; revision=39650
|
|
|
|
| |
Notes:
svn path=/head/; revision=39126
|
|
|
|
|
|
|
| |
have been changed to coda. (Same for CFS.)
Notes:
svn path=/head/; revision=39085
|
|
|
|
| |
Notes:
svn path=/head/; revision=38884
|
|
|
|
| |
Notes:
svn path=/head/; revision=38759
|
|
Notes:
svn path=/cvs2svn/branches/CODA/; revision=38625
|