| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Notes:
svn path=/head/; revision=29041
|
|
|
|
| |
Notes:
svn path=/head/; revision=28844
|
|
|
|
| |
Notes:
svn path=/head/; revision=28832
|
|
|
|
| |
Notes:
svn path=/head/; revision=28818
|
|
|
|
|
|
|
| |
fixes problems in unmounting and propogation.
Notes:
svn path=/head/; revision=28807
|
|
|
|
|
|
|
|
| |
Remove all traces of the name_cache from devfs. It is hardly sensible to
use the namecache for an all-RAM filesystem.
Notes:
svn path=/head/; revision=28733
|
|
|
|
|
|
|
|
|
|
|
| |
socket addresses in mbufs. (Socket buffers are the one exception.) A number
of kernel APIs needed to get fixed in order to make this happen. Also,
fix three protocol families which kept PCBs in mbufs to not malloc them
instead. Delete some old compatibility cruft while we're at it, and add
some new routines in the in_cksum family.
Notes:
svn path=/head/; revision=28270
|
|
|
|
|
|
|
|
|
| |
points `.'.
Obtained from: NetBSD
Notes:
svn path=/head/; revision=28233
|
|
|
|
| |
Notes:
svn path=/head/; revision=28232
|
|
|
|
|
|
|
|
|
| |
a file to upper layer.
Reviewed by: Naofumi Honda <honda@Kururu.math.sci.hokudai.ac.jp>
Notes:
svn path=/head/; revision=28189
|
|
|
|
|
|
|
| |
manpage works again.
Notes:
svn path=/head/; revision=28188
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uerror == 0 && lerror == EACCES, lowervp == NULLVP and union_allocvp
doesn't find existing union node and new union node is created.
Sicne it is dificult to cover all the case, union_lookup always
returns when union_lookup1() returns EACCES.
Submitted by: Naofumi Honda <honda@Kururu.math.sci.hokudai.ac.jp>
Obtained from: NetBSD/pc98
Notes:
svn path=/head/; revision=28101
|
|
|
|
| |
Notes:
svn path=/head/; revision=28089
|
|
|
|
|
|
|
|
|
|
| |
reading/writing of mem and regs). Also have to check for the requesting
process being group KMEM -- this is a bit of a hack, but ps et al need it.
Reviewed by: davidg
Notes:
svn path=/head/; revision=28086
|
|
|
|
| |
Notes:
svn path=/head/; revision=27845
|
|
|
|
| |
Notes:
svn path=/head/; revision=27389
|
|
|
|
| |
Notes:
svn path=/head/; revision=27387
|
|
|
|
| |
Notes:
svn path=/head/; revision=26964
|
|
|
|
| |
Notes:
svn path=/head/; revision=26963
|
|
|
|
| |
Notes:
svn path=/head/; revision=26962
|
|
|
|
|
|
|
|
|
|
| |
The additional check in procfs_ctl.c could be backed out, but
I'm leaving it in for good measure.
Reviewed by: Theo de Raadt <deraadt@OpenBSD.org>
Notes:
svn path=/head/; revision=26769
|
|
|
|
|
|
|
| |
cleaned. This should help for PR kern/3581.
Notes:
svn path=/head/; revision=26271
|
|
|
|
|
|
|
| |
umapfs uses one of nullfs's functions...
Notes:
svn path=/head/; revision=26111
|
|
|
|
|
|
|
|
|
|
| |
union_statfs().
2. staticized union vops.
Submitted by: Doug Rabson <dfr@nlsystems.com>
Notes:
svn path=/head/; revision=25535
|
|
|
|
|
|
|
|
| |
PR: 3276 & 3469 (the fixes), 2738, 2033 (reports)
Submitted by: Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
Notes:
svn path=/head/; revision=25436
|
|
|
|
| |
Notes:
svn path=/head/; revision=25397
|
|
|
|
|
|
|
|
|
| |
in savedvp variable and it is used for the argument of
MOUNTTOUNIONMOUNT(). I didn't realize ap->a_vp is modified before
MOUNTTOUNIONMOUNT(), so the change by revision 1.22 is incorrect.
Notes:
svn path=/head/; revision=25379
|
|
|
|
|
|
|
|
| |
sector devices given that the fs uses a blocksize of at least a physical
sector size.
Notes:
svn path=/head/; revision=25358
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
UN_KLOCK flag.
When UN_KLOCK is set, VOP_UNLOCK should keep uppervp locked and clear
UN_ULOCK flag. To do this, when UN_KLOCK is set, (1) union_unlock
clears UN_ULOCK and does not clear UN_KLOCK, (2) union_lock() does not
access uppervp and does not clear UN_KLOCK, and (3) callers of
vput/VOP_UNLOCK should clear UN_KLOCK. For example, vput becomes:
SETKLOCK(union_node);
vput(vnode);
CLEARKLOCK(union_node);
where SETKLOCK macro sets UN_KLOCK and CLEARKLOCK macro clears
UN_KLOCK.
Notes:
svn path=/head/; revision=25261
|
|
|
|
| |
Notes:
svn path=/head/; revision=25207
|
|
|
|
|
|
|
| |
Noticed by: Brian Buchanan <brian@wasteland.calbbs.com>
Notes:
svn path=/head/; revision=25200
|
|
|
|
| |
Notes:
svn path=/head/; revision=25192
|
|
|
|
|
|
|
|
| |
(UN_ULOCK is not set) in union_lock. This condition may indicate
race. DIAGNOSTIC kernel still panic here.
Notes:
svn path=/head/; revision=25167
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our vput calls vm_object_deallocate() --> vm_object_terminate(). The
vm_object_terminate() calls vn_lock(), since UN_LOCKED has been
already cleared in union_unlock(). Then, union_lock locks upper vnode
when UN_ULOCK is not set. The upper vnode is not unlocked when
UN_KLOCK is set in union_unlock(), thus, union_lock tries to lock
locked vnode and we get panic.
Notes:
svn path=/head/; revision=25160
|
|
|
|
|
|
|
|
|
|
|
| |
UN_ULOCK flag. This shows a locking violation but I couldn't find the
reason UN_ULOCK is not set or upper vnode is not unlocked. I added
the code that detect this case and adjust un_flags. DIAGNOSTIC kernel
doesn't adjust un_flags, but just panic here to help debug by kernel
hackers.
Notes:
svn path=/head/; revision=25079
|
|
|
|
| |
Notes:
svn path=/head/; revision=25070
|
|
|
|
|
|
|
|
|
| |
the process map on nonexistant pages.
PR: kern/3327
Submitted by: Tor Egge <Tor.Egge@idi.ntnu.no>
Notes:
svn path=/head/; revision=25055
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
# mount -t union (or null) dir1 dir2
# mount -t union (or null) dir2 dir1
The function namei in union_mount calls union_root. The upper vnode
has been already locked and vn_lock in union_root causes above panic.
Add printf's included in `#ifdef DIAGNOSTIC' for EDEADLK cases.
Notes:
svn path=/head/; revision=25016
|
|
|
|
|
|
|
| |
directory pair.
Notes:
svn path=/head/; revision=24988
|
|
|
|
| |
Notes:
svn path=/head/; revision=24987
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is NULLVP, union node will have neither uppervp nor lowervp. This
causes page fault trap.
The union_removed_upper just remove union node from cache and it
doesn't set uppervp to NULLVP. Since union node is removed from
cache, it will not be referenced.
The code that remove union node from cache was copied from
union_inactive.
Notes:
svn path=/head/; revision=24985
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
VOP_LINK(). The reason of strange behavior was wrong order of the
argument, that is, the operation
# ln foo bar
in a union fs tried to do
# ln bar foo
in ufs layer.
Now we can make a link in a union fs.
Notes:
svn path=/head/; revision=24974
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fix!
The ufs_link() assumes that vnode is not unlocked and tries to lock it
in certain case. Because union_link calls VOP_LINK after locking vnode,
vn_lock in ufs_link causes above panic.
Currently, I don't know the real fix for a locking violation in
union_link, but I think it is important to avoid panic.
A vnode is unlocked before calling VOP_LINK and is locked after it if
the vnode is not union fs. Even though panic went away, the process
that access the union fs in which link was made will hang-up.
Hang-up can be easily reproduced by following operation:
mount -t union a b
cd b
ln foo bar
ls
Notes:
svn path=/head/; revision=24963
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
same directory pair.
If we do:
mount -t union a b
mount -t union a b
then, (1) namei tries to lock fs which has been already locked by
first union mount and (2) union_root() tries to lock locked fs. To
avoid first deadlock condition, unlock vnode if lowerrootvp is union
node, and to avoid second case, union_mount returns EDEADLK when multi
union mount is detected.
Notes:
svn path=/head/; revision=24921
|
|
|
|
|
|
|
| |
Obtained from: NetBSD
Notes:
svn path=/head/; revision=24918
|
|
|
|
| |
Notes:
svn path=/head/; revision=24875
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dolock is not set (that is, targetvp == overlaying vnode object).
Current code use FIXUP macro to do this, and never unlocks overlaying
vnode object in union_fsync. So, the vnode object will be locked
twice and never unlocked.
PR: 3271
Submitted by: kato
Notes:
svn path=/head/; revision=24858
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
relookup() in union_relookup() is succeeded. However, if relookup()
returns non-zero value, that is relookup fails, VOP_MKDIR is never
called (c.f. union_mkshadow). Thus, pathname buffer is never FREEed.
Reviewed by: phk
Submitted by: kato
PR: 3262
Notes:
svn path=/head/; revision=24857
|
|
|
|
|
|
|
|
|
|
|
|
| |
union_vn_create(), following bcopy copies cn.cn_namlen + 1 bytes to
cn.cn_pnbuf
PR: 3255
Reviewed by: phk
Submitted by: kato
Notes:
svn path=/head/; revision=24856
|
|
|
|
|
|
|
|
| |
we don't have to use the libc related files in sys/misc/unionfs
directory.
Notes:
svn path=/head/; revision=24855
|