COUNT_REQ(VLLISTENTRY);
if ((errorcode = Init_VLdbase(&ctx, LOCKREAD, this_op)))
- return errorcode;
+ goto end;
VLog(25, ("OListEntry index=%d %s\n", previous_index,
rxinfo(rxstr, rxcall)));
*next_index = NextEntry(&ctx, previous_index, &tentry, count);
if (*next_index)
vlentry_to_vldbentry(&ctx, &tentry, aentry);
- return (ubik_EndTrans(ctx.trans));
+ errorcode = ubik_EndTrans(ctx.trans);
+ end:
+ osi_auditU(rxcall, VLListEntryEvent, errorcode, AUD_LONG, previous_index, AUD_END);
+ return errorcode;
}
/* ListEntry returns a single vldb entry, aentry, with offset previous_index;
COUNT_REQ(VLLISTENTRYN);
if ((errorcode = Init_VLdbase(&ctx, LOCKREAD, this_op)))
- return errorcode;
+ goto end;
VLog(25, ("ListEntry index=%d %s\n", previous_index, rxinfo(rxstr, rxcall)));
*next_index = NextEntry(&ctx, previous_index, &tentry, count);
if (*next_index)
vlentry_to_nvldbentry(&ctx, &tentry, aentry);
- return (ubik_EndTrans(ctx.trans));
+ errorcode = ubik_EndTrans(ctx.trans);
+ end:
+ osi_auditU(rxcall, VLListEntryEventN, errorcode, AUD_LONG, previous_index, AUD_END);
+ return errorcode;
}
vldbentries->bulkentries_val = 0;
vldbentries->bulkentries_len = *nentries = 0;
if ((errorcode = Init_VLdbase(&ctx, LOCKREAD, this_op)))
- return errorcode;
+ goto end;
allocCount = VLDBALLOCCOUNT;
Vldbentry = VldbentryFirst = vldbentries->bulkentries_val =
(vldbentry *) malloc(allocCount * sizeof(vldbentry));
if (Vldbentry == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
VldbentryLast = VldbentryFirst + allocCount;
/* Handle the attribute by volume id totally separate of the rest
free((char *)vldbentries->bulkentries_val);
vldbentries->bulkentries_val = 0;
vldbentries->bulkentries_len = 0;
- return errorcode;
+ goto end;
}
if ((errorcode =
put_attributeentry(&ctx, &Vldbentry, &VldbentryFirst, &VldbentryLast,
free((char *)vldbentries->bulkentries_val);
vldbentries->bulkentries_val = 0;
vldbentries->bulkentries_len = 0;
- return VL_SIZEEXCEEDED;
+ errorcode = VL_SIZEEXCEEDED;
+ goto end;
}
} else {
afs_int32 nextblockindex = 0, count = 0, k = 0, match = 0;
free((char *)vldbentries->bulkentries_val);
vldbentries->bulkentries_val = 0;
vldbentries->bulkentries_len = 0;
- return errorcode;
+ goto end;
}
}
}
if (vldbentries->bulkentries_val == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
}
VLog(5,
("ListAttrs nentries=%d %s\n", vldbentries->bulkentries_len,
rxinfo(rxstr, rxcall)));
- return (ubik_EndTrans(ctx.trans));
+ errorcode = ubik_EndTrans(ctx.trans);
+ end:
+ osi_auditU(rxcall, VLListAttributesEvent, errorcode, AUD_END);
+ return errorcode;
}
afs_int32
vldbentries->nbulkentries_val = 0;
vldbentries->nbulkentries_len = *nentries = 0;
if ((errorcode = Init_VLdbase(&ctx, LOCKREAD, this_op)))
- return errorcode;
+ goto end;
allocCount = VLDBALLOCCOUNT;
Vldbentry = VldbentryFirst = vldbentries->nbulkentries_val =
(nvldbentry *) malloc(allocCount * sizeof(nvldbentry));
if (Vldbentry == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
VldbentryLast = VldbentryFirst + allocCount;
/* Handle the attribute by volume id totally separate of the rest
free((char *)vldbentries->nbulkentries_val);
vldbentries->nbulkentries_val = 0;
vldbentries->nbulkentries_len = 0;
- return errorcode;
+ goto end;
}
if ((errorcode =
put_nattributeentry(&ctx, &Vldbentry, &VldbentryFirst, &VldbentryLast,
free((char *)vldbentries->nbulkentries_val);
vldbentries->nbulkentries_val = 0;
vldbentries->nbulkentries_len = 0;
- return VL_SIZEEXCEEDED;
+ errorcode = VL_SIZEEXCEEDED;
+ goto end;
}
} else {
afs_int32 nextblockindex = 0, count = 0, k = 0, match = 0;
free((char *)vldbentries->nbulkentries_val);
vldbentries->nbulkentries_val = 0;
vldbentries->nbulkentries_len = 0;
- return errorcode;
+ goto end;
}
}
}
if (vldbentries->nbulkentries_val == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
}
VLog(5,
("NListAttrs nentries=%d %s\n", vldbentries->nbulkentries_len,
rxinfo(rxstr, rxcall)));
- return (ubik_EndTrans(ctx.trans));
+ errorcode = ubik_EndTrans(ctx.trans);
+ end:
+ osi_auditU(rxcall, VLListAttributesNEvent, errorcode, AUD_END);
+ return errorcode;
}
errorcode = Init_VLdbase(&ctx, LOCKREAD, this_op);
if (errorcode)
- return errorcode;
+ goto end;
Vldbentry = VldbentryFirst = vldbentries->nbulkentries_val =
(nvldbentry *) malloc(maxCount * sizeof(nvldbentry));
if (Vldbentry == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
VldbentryLast = VldbentryFirst + maxCount;
vldbentries->nbulkentries_val = 0;
vldbentries->nbulkentries_len = 0;
*nextstartindex = -1;
- return errorcode;
} else {
VLog(5,
("N2ListAttrs nentries=%d %s\n", vldbentries->nbulkentries_len,
rxinfo(rxstr, rxcall)));
- return (ubik_EndTrans(ctx.trans));
+ errorcode = ubik_EndTrans(ctx.trans);
}
+
+ end:
+ osi_auditU(rxcall, VLListAttributesN2Event, errorcode, AUD_END);
+ return errorcode;
}
COUNT_REQ(VLLINKEDLIST);
if ((errorcode = Init_VLdbase(&ctx, LOCKREAD, this_op)))
- return errorcode;
+ goto end;
*nentries = 0;
vldbentries->node = NULL;
if (!blockindex) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return (errorcode ? errorcode : VL_NOENT);
+ errorcode = (errorcode ? errorcode : VL_NOENT);
+ goto end;
}
vllist = (single_vldbentry *) malloc(sizeof(single_vldbentry));
if (vllist == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
vlentry_to_vldbentry(&ctx, &tentry, &vllist->VldbEntry);
vllist->next_vldb = NULL;
if (vllist == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
vlentry_to_vldbentry(&ctx, &tentry, &vllist->VldbEntry);
vllist->next_vldb = NULL;
if (smallMem && (*nentries >= VLDBALLOCCOUNT)) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_SIZEEXCEEDED;
+ errorcode = VL_SIZEEXCEEDED;
+ goto end;
}
}
}
*vllistptr = NULL;
- return (ubik_EndTrans(ctx.trans));
+ errorcode = ubik_EndTrans(ctx.trans);
+ end:
+ osi_auditU(rxcall, VLLinkedListEvent, errorcode, AUD_END);
+ return errorcode;
}
afs_int32
COUNT_REQ(VLLINKEDLISTN);
if ((errorcode = Init_VLdbase(&ctx, LOCKREAD, this_op)))
- return errorcode;
+ goto end;
*nentries = 0;
vldbentries->node = NULL;
if (!blockindex) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return (errorcode ? errorcode : VL_NOENT);
+ errorcode = (errorcode ? errorcode : VL_NOENT);
+ goto end;
}
vllist = (single_nvldbentry *) malloc(sizeof(single_nvldbentry));
if (vllist == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
vlentry_to_nvldbentry(&ctx, &tentry, &vllist->VldbEntry);
vllist->next_vldb = NULL;
if (vllist == NULL) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_NOMEM;
+ errorcode = VL_NOMEM;
+ goto end;
}
vlentry_to_nvldbentry(&ctx, &tentry, &vllist->VldbEntry);
vllist->next_vldb = NULL;
if (smallMem && (*nentries >= VLDBALLOCCOUNT)) {
COUNT_ABO;
ubik_AbortTrans(ctx.trans);
- return VL_SIZEEXCEEDED;
+ errorcode = VL_SIZEEXCEEDED;
+ goto end;
}
}
}
*vllistptr = NULL;
- return (ubik_EndTrans(ctx.trans));
+ errorcode = ubik_EndTrans(ctx.trans);
+ end:
+ osi_auditU(rxcall, VLLinkedListNEvent, errorcode, AUD_END);
+ return errorcode;
}
/* Get back vldb header statistics (allocs, frees, maxvolumeid,
COUNT_REQ(VLGETSTATS);
#ifdef notdef
/* Allow users to get statistics freely */
- if (!afsconf_SuperUser(vldb_confdir, rxcall, NULL)) /* Must be in 'UserList' to use */
- return VL_PERM;
+ if (!afsconf_SuperUser(vldb_confdir, rxcall, NULL)) { /* Must be in 'UserList' to use */
+ code = VL_PERM;
+ goto end;
+ }
#endif
if ((errorcode = Init_VLdbase(&ctx, LOCKREAD, this_op)))
- return errorcode;
+ goto end;
VLog(5, ("GetStats %s\n", rxinfo(rxstr, rxcall)));
memcpy((char *)vital_header, (char *)&ctx.cheader->vital_header,
sizeof(vital_vlheader));
memcpy((char *)stats, (char *)&dynamic_statistics, sizeof(vldstats));
- return (ubik_EndTrans(ctx.trans));
+ errorcode = ubik_EndTrans(ctx.trans);
+ end:
+ osi_auditU(rxcall, VLGetStatsEvent, errorcode, AUD_END);
+ return errorcode;
}
/* Get the list of file server addresses from the VLDB. Currently it's pretty