UKERNEL: f_fsid is a struct on AIX
authorAndrew Deason <adeason@sinenomine.net>
Thu, 4 Nov 2010 15:57:30 +0000 (10:57 -0500)
committerDerrick Brashear <shadow@dementia.org>
Thu, 4 Nov 2010 17:37:30 +0000 (10:37 -0700)
The statvfs f_fsid member is a struct with two fields on AIX when
_ALL_SOURCE is defined (which we define to get various extensions). So
in the AIX case, use it as such a struct instead of a single integer.

Change-Id: Ibd94d6b38b0cdc08b5812fe29e4e93344765ff05
Reviewed-on: http://gerrit.openafs.org/3260
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/afs/UKERNEL/osi_vfsops.c

index d3baa8c..53dd5ef 100644 (file)
@@ -125,7 +125,13 @@ afs_statvfs(struct vfs *afsp, struct statvfs *abp)
     abp->f_bsize = afsp->vfs_bsize;
     abp->f_blocks = abp->f_bfree = abp->f_bavail = abp->f_files =
       abp->f_ffree = 9000000;
+
+#ifdef AFS_USR_AIX_ENV
+    abp->f_fsid.val[0] = AFS_VFSMAGIC;
+    abp->f_fsid.val[1] = AFS_VFSFSID;
+#else
     abp->f_fsid = (AFS_VFSMAGIC << 16) || AFS_VFSFSID;
+#endif
 
     return 0;
 }