*** lock/lock.c.orig Fri Jan 15 10:33:56 1999 --- lock/lock.c Fri Jan 22 15:23:13 1999 *************** *** 609,614 **** --- 609,620 ---- 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,