#include <afs/vlserver.h>
#include <afs/nfs.h>
#include <afs/afsint.h>
-#include <ubik.h>
#include "volint.h"
#include "volser.h"
#include "lockdata.h"
#include "vsutils_prototypes.h"
#include "lockprocs_prototypes.h"
-struct ubik_client *cstruct;
-
/* Finds an index in VLDB entry that matches the volume type, server, and partition.
* If type is zero, will match first index of ANY type (RW, BK, or RO).
* If server is zero, will match first index of ANY server and partition
{
int e;
afs_int32 error = 0;
- afsUUID m_uuid;
- int uuid_valid = 0;
-
- if (server && !afs_uuid_is_nil(&entry->serverNumber[0])) {
- afs_int32 vcode, m_uniq=0;
- bulkaddrs m_addrs;
- ListAddrByAttributes m_attrs;
- afs_int32 m_nentries;
-
- m_attrs.Mask = VLADDR_IPADDR;
- m_attrs.ipaddr = htonl(server);
- m_nentries = 0;
- m_addrs.bulkaddrs_val = 0;
- m_addrs.bulkaddrs_len = 0;
- vcode =
- ubik_VL_GetAddrsU( cstruct, 0, &m_attrs,
- &m_uuid,
- &m_uniq, &m_nentries,
- &m_addrs);
- uuid_valid = (vcode == 0);
- }
for (e = 0; (e < entry->nServers) && !error; e++) {
if (!type || (entry->serverFlags[e] & type)) {
if ((!server || (entry->serverPartition[e] == part))
&& (!server
- || (uuid_valid && afs_uuid_equal(&m_uuid, &entry->serverNumber[e]))
- || VLDB_IsSameAddrs(entry->serverUnique[e], server, &error)))
+ || VLDB_IsSameAddrs(entry->serverUnique[e], server,
+ &error)))
break;
if (type == ITSRWVOL)
return -1; /* quit when we are looking for RW entry (there's only 1) */