if (strlen(aname) > AFSNAMEMAX) {
code = ENAMETOOLONG;
- goto done;
+ goto done3;
}
if (!afs_ENameOK(aname)) {
code = EINVAL;
- goto done;
+ goto done3;
}
+
+ AFS_DISCON_LOCK();
+
code = afs_EvalFakeStat(&adp, &fakestate, &treq);
if (code)
goto done;
code = EROFS;
goto done;
}
+
+ if (AFS_IS_DISCONNECTED && !AFS_IS_LOGGING) {
+ /*printf("Network is down in afs_mkdir\n");*/
+ code = ENETDOWN;
+ }
InStatus.Mask = AFS_SETMODTIME | AFS_SETMODE | AFS_SETGROUP;
InStatus.ClientModTime = osi_Time();
} else
code = ENOENT;
done:
+ AFS_DISCON_UNLOCK();
+ done3:
afs_PutFakeStat(&fakestate);
code = afs_CheckCode(code, &treq, 26);
done2:
goto done;
}
+ AFS_DISCON_LOCK();
+
code = afs_EvalFakeStat(&adp, &fakestate, &treq);
if (code)
goto done;
goto done;
}
+ if (AFS_IS_DISCONNECTED && !AFS_IS_LOGGING) {
+ code = ENETDOWN;
+ goto done;
+ }
+
tdc = afs_GetDCache(adp, (afs_size_t) 0, &treq, &offset, &len, 1); /* test for error below */
ObtainWriteLock(&adp->lock, 154);
if (tdc)
code = 0;
done:
+ AFS_DISCON_UNLOCK();
+ done3:
afs_PutFakeStat(&fakestate);
code = afs_CheckCode(code, &treq, 27);
done2: