diff --git a/src/afs/VNOPS/afs_vnop_lookup.c b/src/afs/VNOPS/afs_vnop_lookup.c index 88bd4c106b..d2bd0900f4 100644 --- a/src/afs/VNOPS/afs_vnop_lookup.c +++ b/src/afs/VNOPS/afs_vnop_lookup.c @@ -608,20 +608,22 @@ tagain: #ifdef RX_ENABLE_LOCKS AFS_GUNLOCK(); #endif /* RX_ENABLE_LOCKS */ -#ifdef notdef - code = RXAFS_InlineBulkStatus(tcp->id, &fidParm, &statParm, - &cbParm, &volSync); - if (code == RXGEN_OPCODE) { -#endif + + if (!(tcp->srvr->server->flags & SNO_INLINEBULK)) { + code = RXAFS_InlineBulkStatus(tcp->id, &fidParm, &statParm, + &cbParm, &volSync); + if (code == RXGEN_OPCODE) { + tcp->srvr->server->flags |= SNO_INLINEBULK; + inlinebulk = 0; + code = RXAFS_BulkStatus(tcp->id, &fidParm, &statParm, + &cbParm, &volSync); + } else + inlinebulk=1; + } else { + inlinebulk=0; code = RXAFS_BulkStatus(tcp->id, &fidParm, &statParm, &cbParm, &volSync); - inlinebulk=0; -#ifdef notdef - } else { - inlinebulk=1; } -#endif - #ifdef RX_ENABLE_LOCKS AFS_GLOCK(); #endif /* RX_ENABLE_LOCKS */ diff --git a/src/afs/afs.h b/src/afs/afs.h index d1918d5367..2424c40383 100644 --- a/src/afs/afs.h +++ b/src/afs/afs.h @@ -329,6 +329,7 @@ struct srvAddr { #define SRVR_ISDOWN 0x20 #define SRVR_MULTIHOMED 0x40 #define SRVR_ISGONE 0x80 +#define SNO_INLINEBULK 0x100 struct server { union { @@ -356,7 +357,7 @@ struct server { afs_int32 numDowntimeIncidents; /* # (completed) downtime incidents */ afs_int32 sumOfDowntimes; /* Total downtime experienced, in seconds */ struct srvAddr *addr; - char flags; /* Misc flags*/ + afs_uint32 flags; /* Misc flags*/ }; #define afs_PutServer(servp, locktype)