]> git.michaelhowe.org Git - packages/o/openafs.git/commit
macos: bulkstat redux
authorDerrick Brashear <shadow@dementia.org>
Fri, 20 May 2011 18:13:01 +0000 (14:13 -0400)
committerDerrick Brashear <shadow@dementia.org>
Sun, 22 May 2011 15:31:04 +0000 (08:31 -0700)
commit45f444376cf446a0e21795ea627413666f634011
treeef9aaf5ce77cc52657c2e9f2bc8ef493bbf04b82
parentfaac1f8920ad783ddd7886f000611bf474cfe837
macos: bulkstat redux

simplify the logic which can require sleeps in various vcache
resolution paths. instead of the two-pass system we had before,
just guess using the even/odd hack what type a vnode will be.
if a vnode turns out to be a link and thus we are wrong, we
do a fixup later. other callers who "race" with bulkstat
(which is a supported feature, otherwise you'd have to block
callbacks) will also call through a fixup to get the correct
backing vnode type. this is necessary as the KPI doesn't
let us change the type of a vnode after it's been created.

side effect: eliminate many of the ugly cases where we had been
sleeping waiting for a vnode to be finalized even before bulkstat.

Reviewed-on: http://gerrit.openafs.org/4677
Tested-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 04087af8494b90f664ac5f274d5db4c12063f238)

Change-Id: I7a9c3e4f94496aa1a553ad54f6d43a0d0e6ccd5a
Reviewed-on: http://gerrit.openafs.org/4699
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/afs/DARWIN/osi_inode.c
src/afs/DARWIN/osi_prototypes.h
src/afs/DARWIN/osi_vcache.c
src/afs/DARWIN/osi_vfsops.c
src/afs/DARWIN/osi_vnodeops.c
src/afs/VNOPS/afs_vnop_lookup.c
src/afs/afs.h
src/afs/afs_callback.c
src/afs/afs_pioctl.c
src/afs/afs_vcache.c