mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2025-01-01 00:18:15 +01:00
Trimm out now unused option LK_EXCLUPGRADE from the lockmgr namespace.
This option just adds complexity and the new implementation no longer will support it, so axing it now that it is unused is probabilly the better idea. FreeBSD version is bumped in order to reflect the KPI breakage introduced by this patch. In the ports tree, kris found that only old OSKit code uses it, but as it is thought to work only on 2.x kernels serie, version bumping will solve any problem.
This commit is contained in:
parent
ebc87e7e0b
commit
100f241571
@ -61,15 +61,13 @@ The vnode being locked or unlocked.
|
||||
.It Fa flags
|
||||
One of the lock request types:
|
||||
.Pp
|
||||
.Bl -tag -width ".Dv LK_EXCLUPGRADE" -offset indent -compact
|
||||
.Bl -tag -width ".Dv LK_CANRECURSE" -offset indent -compact
|
||||
.It Dv LK_SHARED
|
||||
Shared lock.
|
||||
.It Dv LK_EXCLUSIVE
|
||||
Exclusive lock.
|
||||
.It Dv LK_UPGRADE
|
||||
Shared-to-exclusive upgrade.
|
||||
.It Dv LK_EXCLUPGRADE
|
||||
First shared-to-exclusive upgrade.
|
||||
.It Dv LK_DOWNGRADE
|
||||
Exclusive-to-shared downgrade.
|
||||
.It Dv LK_RELEASE
|
||||
@ -82,7 +80,7 @@ The lock type may be
|
||||
.Em or Ns 'ed
|
||||
with these lock flags:
|
||||
.Pp
|
||||
.Bl -tag -width ".Dv LK_EXCLUPGRADE" -offset indent -compact
|
||||
.Bl -tag -width ".Dv LK_CANRECURSE" -offset indent -compact
|
||||
.It Dv LK_NOWAIT
|
||||
Do not sleep to wait for lock.
|
||||
.It Dv LK_SLEEPFAIL
|
||||
@ -95,7 +93,7 @@ The lock type may be
|
||||
.Em or Ns 'ed
|
||||
with these control flags:
|
||||
.Pp
|
||||
.Bl -tag -width ".Dv LK_EXCLUPGRADE" -offset indent -compact
|
||||
.Bl -tag -width ".Dv LK_CANRECURSE" -offset indent -compact
|
||||
.It Dv LK_INTERLOCK
|
||||
Specify when the caller already has a simple lock
|
||||
.Fn ( VOP_LOCK
|
||||
|
@ -26,7 +26,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd June 20, 2006
|
||||
.Dd December 27, 2007
|
||||
.Dt LOCK 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -113,7 +113,7 @@ Its arguments are:
|
||||
A pointer to the lock to manipulate.
|
||||
.It Fa flags
|
||||
Flags indicating what action is to be taken.
|
||||
.Bl -tag -width ".Dv LK_EXCLUPGRADE"
|
||||
.Bl -tag -width ".Dv LK_CANRECURSE"
|
||||
.It Dv LK_SHARED
|
||||
Acquire a shared lock.
|
||||
If an exclusive lock is currently held, it will be downgraded.
|
||||
@ -127,14 +127,6 @@ is not set, the system will
|
||||
Downgrade exclusive lock to a shared lock.
|
||||
Downgrading a shared lock is not permitted.
|
||||
If an exclusive lock has been recursed, all references will be downgraded.
|
||||
.It Dv LK_EXCLUPGRADE
|
||||
Upgrade a shared lock to an exclusive lock.
|
||||
Fails with
|
||||
.Er EBUSY
|
||||
if there is someone ahead of you in line waiting for an upgrade.
|
||||
If this call fails, the shared lock is lost.
|
||||
Attempts to upgrade an exclusive lock will cause a
|
||||
.Xr panic 9 .
|
||||
.It Dv LK_UPGRADE
|
||||
Upgrade a shared lock to an exclusive lock.
|
||||
If this call fails, the shared lock is lost.
|
||||
|
@ -81,7 +81,6 @@ static struct lk_lr_table un_llt[] = {
|
||||
{LK_SHARED, LK_RELEASE},
|
||||
{LK_EXCLUSIVE, LK_RELEASE},
|
||||
{LK_UPGRADE, LK_DOWNGRADE},
|
||||
{LK_EXCLUPGRADE, LK_DOWNGRADE},
|
||||
{LK_DOWNGRADE, LK_UPGRADE},
|
||||
{0, 0}
|
||||
};
|
||||
|
@ -299,19 +299,6 @@ _lockmgr(struct lock *lkp, u_int flags, struct mtx *interlkp,
|
||||
wakeup((void *)lkp);
|
||||
break;
|
||||
|
||||
case LK_EXCLUPGRADE:
|
||||
/*
|
||||
* If another process is ahead of us to get an upgrade,
|
||||
* then we want to fail rather than have an intervening
|
||||
* exclusive access.
|
||||
*/
|
||||
if (lkp->lk_flags & LK_WANT_UPGRADE) {
|
||||
shareunlock(td, lkp, 1);
|
||||
error = EBUSY;
|
||||
break;
|
||||
}
|
||||
/* FALLTHROUGH normal upgrade */
|
||||
|
||||
case LK_UPGRADE:
|
||||
/*
|
||||
* Upgrade a shared lock to an exclusive one. If another
|
||||
|
@ -84,12 +84,6 @@ struct lock {
|
||||
* have upgraded to an exclusive lock. Other processes may get
|
||||
* exclusive access to the resource between the time that the upgrade
|
||||
* is requested and the time that it is granted.
|
||||
* LK_EXCLUPGRADE - the process must hold a shared lock that it wants to
|
||||
* have upgraded to an exclusive lock. If the request succeeds, no
|
||||
* other processes will have gotten exclusive access to the resource
|
||||
* between the time that the upgrade is requested and the time that
|
||||
* it is granted. However, if another process has already requested
|
||||
* an upgrade, the request will fail (see error returns below).
|
||||
* LK_DOWNGRADE - the process must hold an exclusive lock that it wants
|
||||
* to have downgraded to a shared lock. If the process holds multiple
|
||||
* (recursive) exclusive locks, they will all be downgraded to shared
|
||||
@ -107,7 +101,6 @@ struct lock {
|
||||
#define LK_SHARED 0x00000001 /* shared lock */
|
||||
#define LK_EXCLUSIVE 0x00000002 /* exclusive lock */
|
||||
#define LK_UPGRADE 0x00000003 /* shared-to-exclusive upgrade */
|
||||
#define LK_EXCLUPGRADE 0x00000004 /* first shared-to-exclusive upgrade */
|
||||
#define LK_DOWNGRADE 0x00000005 /* exclusive-to-shared downgrade */
|
||||
#define LK_RELEASE 0x00000006 /* release any type of lock */
|
||||
#define LK_DRAIN 0x00000007 /* wait for all lock activity to end */
|
||||
|
@ -57,7 +57,7 @@
|
||||
* is created, otherwise 1.
|
||||
*/
|
||||
#undef __FreeBSD_version
|
||||
#define __FreeBSD_version 800007 /* Master, propagated to newvers */
|
||||
#define __FreeBSD_version 800008 /* Master, propagated to newvers */
|
||||
|
||||
#ifndef LOCORE
|
||||
#include <sys/types.h>
|
||||
|
Loading…
Reference in New Issue
Block a user