libafs: getattr should include S_IFDIR on fake dirs
authorDerrick Brashear <shadow@dementix.org>
Wed, 18 Jul 2012 04:02:16 +0000 (00:02 -0400)
committerDerrick Brashear <shadow@dementix.org>
Sun, 22 Jul 2012 12:21:41 +0000 (05:21 -0700)
on macos, VDIR is not useful as part of a directory mode. it's just not.
on aix, solaris, we presumably want to pass S_ISDIR, so do so

Change-Id: I04ee49857febf1cf96d30bd6a8271f99192630c8
Reviewed-on: http://gerrit.openafs.org/7789
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

src/afs/VNOPS/afs_vnop_attrs.c

index ef3f774..854f4ee 100644 (file)
@@ -54,8 +54,8 @@ afs_CopyOutAttrs(struct vcache *avc, struct vattr *attrs)
     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