68 lines
1.7 KiB
C
68 lines
1.7 KiB
C
/****************************************************************
|
|
* *
|
|
* Copyright 2001, 2004 Sanchez Computer Associates, Inc. *
|
|
* *
|
|
* This source code contains the intellectual property *
|
|
* of its copyright holder(s), and is made available *
|
|
* under a license. If you do not know the terms of *
|
|
* the license, please stop and do not read further. *
|
|
* *
|
|
****************************************************************/
|
|
|
|
#include "mdef.h"
|
|
#include "cmidef.h"
|
|
#include "hashtab_mname.h" /* needed for cmmdef.h */
|
|
#include "cmmdef.h"
|
|
#include "gdsroot.h"
|
|
#include "gtm_facility.h"
|
|
#include "fileinfo.h"
|
|
#include "gdsbt.h"
|
|
#include "gdsfhead.h"
|
|
#include "mlkdef.h"
|
|
#include "gvcmz.h"
|
|
|
|
GBLREF struct NTD *ntd_root;
|
|
GBLREF bool remlkreq;
|
|
GBLDEF cm_lk_response *lk_granted, *lk_suspended;
|
|
|
|
void gvcmz_clrlkreq(void)
|
|
{
|
|
struct CLB *p;
|
|
unsigned char operation1, *ptr;
|
|
mlk_pvtblk *temp,*temp1;
|
|
cm_lk_response *q;
|
|
|
|
if (!ntd_root || !(p = (struct CLB *)RELQUE2PTR(ntd_root->cqh.fl))->usr || !remlkreq)
|
|
return;
|
|
operation1 = ZAREQUEST_SENT | LREQUEST_SENT | REQUEST_PENDING;
|
|
for ( ; p != (struct CLB *)ntd_root; p = (struct CLB *)RELQUE2PTR(p->cqe.fl))
|
|
{
|
|
if (((link_info*)(p->usr))->lck_info & REQUEST_PENDING)
|
|
{
|
|
((link_info*)(p->usr))->lck_info &= ~operation1;
|
|
temp = ((link_info*)(p->usr))->netlocks;
|
|
while (temp)
|
|
{
|
|
temp1 = temp->next;
|
|
free(temp);
|
|
temp = temp1;
|
|
}
|
|
((link_info*)(p->usr))->netlocks = 0;
|
|
p->ast = 0;
|
|
}
|
|
}
|
|
while (lk_suspended)
|
|
{
|
|
q = lk_suspended->next;
|
|
lk_suspended->next = NULL;
|
|
lk_suspended = q;
|
|
}
|
|
while (lk_granted)
|
|
{
|
|
q = lk_granted->next;
|
|
lk_granted->next = NULL;
|
|
lk_granted = q;
|
|
}
|
|
remlkreq = FALSE;
|
|
}
|