macos: bulkstat sysctl
authorDerrick Brashear <shadow@dementia.org>
Thu, 26 May 2011 06:04:08 +0000 (02:04 -0400)
committerDerrick Brashear <shadow@dementia.org>
Fri, 27 May 2011 14:43:20 +0000 (07:43 -0700)
make bulkstat enable/disableable via sysctl

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

src/afs/DARWIN/osi_vfsops.c
src/afs/VNOPS/afs_vnop_lookup.c
src/afs/sysctl.h
src/platform/DARWIN/afssettings.m

index 28e7ac9..7f0aac7 100644 (file)
@@ -448,6 +448,7 @@ afs_sync(struct mount *mp, int waitfor, struct ucred *cred, struct proc *p)
 
 u_int32_t afs_darwin_realmodes = 0;
 u_int32_t afs_darwin_fsevents = 0;
+extern int AFSDOBULK;
 
 int
 afs_sysctl_int(int *name, u_int namelen, user_addr_t oldp, size_t *oldlenp,
@@ -504,6 +505,9 @@ afs_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp,
            case AFS_SC_DARWIN_ALL_FSEVENTS:
                return afs_sysctl_int(name, namelen, oldp, oldlenp,
                                      newp, newlen, &afs_darwin_fsevents);
+           case AFS_SC_DARWIN_ALL_BULKSTAT:
+               return afs_sysctl_int(name, namelen, oldp, oldlenp,
+                                     newp, newlen, &AFSDOBULK);
            }
            break;
            /* darwin version specific sysctl's goes here */
index 3a8ea1b..103a586 100644 (file)
@@ -1336,7 +1336,11 @@ afs_DoBulkStat(struct vcache *adp, long dirCookie, struct vrequest *areqp)
 }
 
 /* was: (AFS_DEC_ENV) || defined(AFS_OSF30_ENV) || defined(AFS_NCR_ENV) */
+#ifdef AFS_DARWIN80_ENV
+int AFSDOBULK = 1;
+#else
 static int AFSDOBULK = 1;
+#endif
 
 static_inline int
 osi_lookup_isdot(const char *aname)
index a13b2e4..d9eba6a 100644 (file)
@@ -27,6 +27,7 @@
 /* AFS_SC_DARWIN_ALL sysctls */
 #define AFS_SC_DARWIN_ALL_REALMODES             1
 #define AFS_SC_DARWIN_ALL_FSEVENTS             2
+#define AFS_SC_DARWIN_ALL_BULKSTAT              3
 
 /* AFS_SC_AIX: aix platforms */
 #define AFS_SC_AIX_ALL                         0
index c5a32bf..351491e 100644 (file)
@@ -149,6 +149,7 @@ recurse(id obj, Setting *s, int level, int myoid[])
 Setting sysctl_darwin_all[] = {
     {@"RealModes", AFS_SC_DARWIN_ALL_REALMODES, LeafNum, NULL},
     {@"FSEvents", AFS_SC_DARWIN_ALL_FSEVENTS, LeafNum, NULL},
+    {@"Bulkstat", AFS_SC_DARWIN_ALL_BULKSTAT, LeafNum, NULL},
     {NULL, 0, 0, NULL}
 };
 Setting sysctl_darwin[] = {