if (afs_fakestat_enable && avc->mvstat == 1)
fakedir = 1;
attrs->va_type = fakedir ? VDIR : vType(avc);
-#if defined(AFS_SGI_ENV) || defined(AFS_AIX32_ENV) || defined(AFS_SUN5_ENV)
- attrs->va_mode = fakedir ? 0755 : (mode_t) (avc->f.m.Mode & 0xffff);
+#if defined(AFS_SGI_ENV) || defined(AFS_AIX32_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_DARWIN_ENV)
+ attrs->va_mode = fakedir ? S_IFDIR | 0755 : (mode_t) (avc->f.m.Mode & 0xffff);
#else
attrs->va_mode = fakedir ? VDIR | 0755 : avc->f.m.Mode;
#endif
afs_BozonLock(&avc->pvnLock, avc);
#endif
- if (afs_shuttingdown)
+ if (afs_shuttingdown) {
+#ifdef AFS_BOZONLOCK_ENV
+ afs_BozonUnlock(&avc->pvnLock, avc);
+#endif
+ AFS_DISCON_UNLOCK();
return EIO;
+ }
if (!(avc->f.states & CStatd)) {
if (!(code = afs_InitReq(&treq, acred))) {