From: Derrick Brashear Date: Thu, 26 May 2011 06:04:08 +0000 (-0400) Subject: macos: bulkstat sysctl X-Git-Tag: upstream/1.8.0_pre1^2~3712 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ec26dae2bf32e4187e6eb5ffa0e68da143ed3713;p=packages%2Fo%2Fopenafs.git macos: bulkstat sysctl make bulkstat enable/disableable via sysctl Change-Id: Ib1657964d62e402e96762394b7b61ed5e58a5fc9 Reviewed-on: http://gerrit.openafs.org/4723 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/afs/DARWIN/osi_vfsops.c b/src/afs/DARWIN/osi_vfsops.c index 28e7ac96b..7f0aac77d 100644 --- a/src/afs/DARWIN/osi_vfsops.c +++ b/src/afs/DARWIN/osi_vfsops.c @@ -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 */ diff --git a/src/afs/VNOPS/afs_vnop_lookup.c b/src/afs/VNOPS/afs_vnop_lookup.c index 3a8ea1b51..103a58642 100644 --- a/src/afs/VNOPS/afs_vnop_lookup.c +++ b/src/afs/VNOPS/afs_vnop_lookup.c @@ -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) diff --git a/src/afs/sysctl.h b/src/afs/sysctl.h index a13b2e4e2..d9eba6abf 100644 --- a/src/afs/sysctl.h +++ b/src/afs/sysctl.h @@ -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 diff --git a/src/platform/DARWIN/afssettings.m b/src/platform/DARWIN/afssettings.m index c5a32bfc2..351491e1d 100644 --- a/src/platform/DARWIN/afssettings.m +++ b/src/platform/DARWIN/afssettings.m @@ -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[] = {