* Don't know why we do this. Would have still found it in above call - jpm.
*/
if (!tvp && (prefetch == 2) && len < AFS_SMALLOCSIZ - 10) {
- buf = (char *)osi_AllocSmallSpace(len + 10);
+ buf = osi_AllocSmallSpace(len + 10);
strcpy(buf, volnamep);
afs_strcat(buf, ".readonly");
auniq = 1;
if (avc->mvid == 0)
- avc->mvid =
- (struct VenusFid *)osi_AllocSmallSpace(sizeof(struct VenusFid));
+ avc->mvid = osi_AllocSmallSpace(sizeof(struct VenusFid));
avc->mvid->Cell = (*avolpp)->cell;
avc->mvid->Fid.Volume = (*avolpp)->volume;
avc->mvid->Fid.Vnode = avnoid;
if (AFS_EQ_ATSYS(aname)) {
state->offset = 0;
- state->name = (char *)osi_AllocLargeSpace(MAXSYSNAME);
+ state->name = osi_AllocLargeSpace(MAXSYSNAME);
state->allocked = 1;
state->index =
afs_getsysname(areq, avc, state->name, &num, sysnamelist);
if ((tname > state->name + 4) && (AFS_EQ_ATSYS(tname - 4))) {
state->offset = (tname - 4) - state->name;
- tname = (char *)osi_AllocLargeSpace(AFS_LRALLOCSIZ);
+ tname = osi_AllocLargeSpace(AFS_LRALLOCSIZ);
strncpy(tname, state->name, state->offset);
state->name = tname;
state->allocked = 1;
int code;
if (statParm->AFSBulkStats_len != nFids || cbParm->AFSCBs_len != nFids) {
+ afs_warn("afs: BulkFetchStatus length %u/%u, expected %u\n",
+ (unsigned)statParm->AFSBulkStats_len,
+ (unsigned)cbParm->AFSCBs_len, nFids);
+ afs_BadFetchStatus(tc);
return VBUSY;
}
for (i = 0; i < nFids; i++) {
* one for fids and callbacks, and one for stat info. Well set
* up our pointers to the memory from there, too.
*/
- statsp = (AFSFetchStatus *)
- osi_Alloc(AFSCBMAX * sizeof(AFSFetchStatus));
- fidsp = (AFSFid *) osi_AllocLargeSpace(nentries * sizeof(AFSFid));
- cbsp = (AFSCallBack *)
- osi_Alloc(AFSCBMAX * sizeof(AFSCallBack));
+ statsp = osi_Alloc(AFSCBMAX * sizeof(AFSFetchStatus));
+ fidsp = osi_AllocLargeSpace(nentries * sizeof(AFSFid));
+ cbsp = osi_Alloc(AFSCBMAX * sizeof(AFSCallBack));
/* next, we must iterate over the directory, starting from the specified
* cookie offset (dirCookie), and counting out nentries file entries.
else
tvcp->f.m.Type = VREG;
/* finalize to a best guess */
- afs_darwin_finalizevnode(tvcp, VTOAFS(adp), NULL, 0, 1);
+ afs_darwin_finalizevnode(tvcp, AFSTOV(adp), NULL, 0, 1);
/* re-acquire usecount that finalizevnode disposed of */
vnode_ref(AFSTOV(tvcp));
#endif
/* now copy ".." entry back out of volume structure, if necessary */
if (tvcp->mvstat == 2 && (dotdot.Fid.Volume != 0)) {
if (!tvcp->mvid)
- tvcp->mvid = (struct VenusFid *)
- osi_AllocSmallSpace(sizeof(struct VenusFid));
+ tvcp->mvid = osi_AllocSmallSpace(sizeof(struct VenusFid));
*tvcp->mvid = dotdot;
}
/* was: (AFS_DEC_ENV) || defined(AFS_OSF30_ENV) || defined(AFS_NCR_ENV) */
#ifdef AFS_DARWIN80_ENV
-int AFSDOBULK = 1;
+int AFSDOBULK = 0;
#else
static int AFSDOBULK = 1;
#endif
int pass = 0, hit = 0;
int force_eval = afs_fakestat_enable ? 0 : 1;
long dirCookie;
- extern afs_int32 afs_mariner; /*Writing activity to log? */
afs_hyper_t versionNo;
int no_read_access = 0;
struct sysname_info sysState; /* used only for @sys checking */
if (code)
goto done;
- *avcp = NULL; /* Since some callers don't initialize it */
-
/* come back to here if we encounter a non-existent object in a read-only
* volume's directory */
-
redo:
*avcp = NULL; /* Since some callers don't initialize it */
bulkcode = 0;
if (tvolp) {
ObtainWriteLock(&tvc->lock, 134);
if (tvc->mvid == NULL) {
- tvc->mvid = (struct VenusFid *)
+ tvc->mvid =
osi_AllocSmallSpace(sizeof(struct VenusFid));
}
/* setup backpointer */
* volume) rather than the vc of the mount point itself. We can
* still find the mount point's vc in the vcache by its fid. */
#endif /* UKERNEL */
- if (!hit && force_eval) {
+ if (!hit && (force_eval || tvc->mvstat != 1)) {
osi_dnlc_enter(adp, aname, tvc, &versionNo);
} else {
#ifdef AFS_LINUX20_ENV