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:
Attilio Rao 2007-12-28 00:38:13 +00:00
parent ebc87e7e0b
commit 100f241571
6 changed files with 6 additions and 37 deletions

View File

@ -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

View File

@ -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.

View File

@ -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}
};

View File

@ -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

View File

@ -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 */

View File

@ -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>