#
a03a24c9 |
| 15-Aug-1997 |
KATO Takenori <kato@FreeBSD.org> |
Deleted unused code which adjust UN_UNLOCK flag.
|
#
3dc942bb |
| 14-Aug-1997 |
KATO Takenori <kato@FreeBSD.org> |
Backed out part of previous change. The example of -b mount in manpage works again.
|
#
f8fc96b5 |
| 12-Aug-1997 |
KATO Takenori <kato@FreeBSD.org> |
Fixed vnode corruption by undefined case in union_lookup(). When uerror == 0 && lerror == EACCES, lowervp == NULLVP and union_allocvp doesn't find existing union node and new union node is created.
Fixed vnode corruption by undefined case in union_lookup(). When 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
show more ...
|
Revision tags: release/2.2.2_cvs |
|
#
c9bf0111 |
| 07-May-1997 |
KATO Takenori <kato@FreeBSD.org> |
1. Added cast and parenthesis in block size calculaion in union_statfs(). 2. staticized union vops.
Submitted by: Doug Rabson <dfr@nlsystems.com>
|
#
32cfb899 |
| 03-May-1997 |
KATO Takenori <kato@FreeBSD.org> |
Fixed panic message in union_lock(): union_link --> union_lock.
|
#
5f3f68a8 |
| 02-May-1997 |
KATO Takenori <kato@FreeBSD.org> |
Access correct union mount point in union_access. Old vnode is saved in savedvp variable and it is used for the argument of MOUNTTOUNIONMOUNT(). I didn't realize ap->a_vp is modified before MOUNTTO
Access correct union mount point in union_access. Old vnode is saved 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.
show more ...
|
#
a9320ff3 |
| 29-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Revised fix for locking violation when unionfs calls vput with 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,
Revised fix for locking violation when unionfs calls vput with 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.
show more ...
|
#
c4ace785 |
| 27-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Undo 1.29.
|
#
a18ac0ff |
| 26-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Do nothing instead of adjusting un_flags when (uppervp is locked) && (UN_ULOCK is not set) in union_lock. This condition may indicate race. DIAGNOSTIC kernel still panic here.
|
#
928e13b6 |
| 26-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Do not clear UN_ULOCK in certain case.
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_
Do not clear UN_ULOCK in certain case.
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.
show more ...
|
#
18b4c8e2 |
| 21-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Dirty change in union_lock(). Sometimes upper vnode is locked without 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
Dirty change in union_lock(). Sometimes upper vnode is locked without 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.
show more ...
|
#
077f31be |
| 21-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Replace VOP_LOCK with vn_lock.
|
#
93d71a48 |
| 16-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Undo previous commit to avoid panic, and fix order of argument of VOP_LINK(). The reason of strange behavior was wrong order of the argument, that is, the operation
# ln foo bar
in a union fs tri
Undo previous commit to avoid panic, and fix order of argument of 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.
show more ...
|
#
9095719e |
| 15-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Quick-hack to avoid `lock against myself' panic. It is not the real fix!
The ufs_link() assumes that vnode is not unlocked and tries to lock it in certain case. Because union_link calls VOP_LINK a
Quick-hack to avoid `lock against myself' panic. It is not the real 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
show more ...
|
#
ee582cdf |
| 14-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Fix locking violation when accessing `..'. Obtained from: NetBSD
|
#
3a946335 |
| 13-Apr-1997 |
KATO Takenori <kato@FreeBSD.org> |
Access correct union mount point in union_access.
|
#
363ad700 |
| 13-Apr-1997 |
Poul-Henning Kamp <phk@FreeBSD.org> |
The function union_fsync tries to lock overlaying vnode object when dolock is not set (that is, targetvp == overlaying vnode object). Current code use FIXUP macro to do this, and never unlocks overla
The function union_fsync tries to lock overlaying vnode object when 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
show more ...
|
Revision tags: release/2.2.1_cvs |
|
#
3ac4d1ef |
| 23-Mar-1997 |
Bruce Evans <bde@FreeBSD.org> |
Don't #include <sys/fcntl.h> in <sys/file.h> if KERNEL is defined. Fixed everything that depended on getting fcntl.h stuff from the wrong place. Most things don't depend on file.h stuff at all.
|
Revision tags: release/2.2.0, release/2.1.7_cvs |
|
#
6875d254 |
| 22-Feb-1997 |
Peter Wemm <peter@FreeBSD.org> |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
9e67ea79 |
| 12-Feb-1997 |
Bruce Evans <bde@FreeBSD.org> |
Restored #include of <sys/kernel.h> so that this compiles again.
|
#
72a5ee14 |
| 12-Feb-1997 |
Mike Pritchard <mpp@FreeBSD.org> |
Add function protypes for the new Lite2 unionfs functions.
|
#
996c772f |
| 10-Feb-1997 |
John Dyson <dyson@FreeBSD.org> |
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 syst
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>
show more ...
|
Revision tags: release/2.1.6_cvs, release/2.1.6.1 |
|
#
1130b656 |
| 14-Jan-1997 |
Jordan K. Hubbard <jkh@FreeBSD.org> |
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
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.
show more ...
|
Revision tags: release/2.1.5_cvs, release/2.1.0_cvs |
|
#
9b5e8b3a |
| 03-Dec-1995 |
Bruce Evans <bde@FreeBSD.org> |
Added prototypes.
Removed some unnecessary #includes.
|
#
f57e6547 |
| 09-Nov-1995 |
Bruce Evans <bde@FreeBSD.org> |
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
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.
show more ...
|