*** lock/lock.c.orig Wed Dec 16 14:52:45 1998 --- lock/lock.c Fri Jan 22 15:10:34 1999 *************** *** 511,516 **** --- 511,522 ---- LOCK_LOCKREGION(lt); if (newl->status != DB_LSTAT_PENDING) { + /* + * If this lock errored due to a deadlock, then + * we have waiters that require promotion. + */ + if (newl->status == DB_LSTAT_ABORTED) + (void)__lock_promote(lt, sh_obj); /* Return to free list. */ __lock_checklocker(lt, newl, 0); SH_TAILQ_INSERT_HEAD(&lrp->free_locks, newl, links,