OpenAFS Master Repository branch, openafs-stable-1_6_x, updated. openafs-stable-1_6_5-82-g6e29c74

Gerrit Code Review
Wed, 18 Sep 2013 07:09:50 -0700 (PDT)

The following commit has been merged in the openafs-stable-1_6_x branch:
commit 6e29c74fbd304e29b9d6309b4a79db17416fb081
Author: Mark Vitale <>
Date:   Fri Jan 25 18:47:49 2013 -0500

    salvager: prevent assertion during -orphans attach
    Improve JudgeEntry() detection of orphaned directories to
    prevent unintentional deletion of their '.' and '..' entries.
    This in turn prevents a later assert (opr_Verify) when we try to
    delete and re-add '..' in order to attach the orphan.
    In JudgeEntry(), 2 sources of information about a
    directory entry are compared for consistency:
     - vnodeEssence (unique) from its vnode index entry
     - name, vnodeNumber and unique from its dir blob entry
    A directory entry may be ignored, deleted, or repaired/replaced,
    based upon the results of these and other tests (e.g. dirOprhaned).
    The '.' and '..' entries are treated as special cases because
    we do not want to delete them at this point if this directory
    is orphaned.  However, the current test for orphanhood
    (vnodeEssence->unique == 0) is not sufficient; it could be
    zero for other reasons.  This commit now uses the dirOrphaned
    flag to test for this.
    However, we are still interested in doing the right thing
    for '.' and '..' entries with vnodeEssence->unique == 0.
    This may indicate that the dir blob entry is pointing at the
    wrong vnode, and that vnode has unique==0.  The current code
    incorrectly ignores (returns 0) this case.  This commit now
    now falls through to the repair/replace code so that we can
    find the correct vnode for this entry.
    The current code assumes that the 'vnodeEssence == 0 &&
    !dirOrphaned' case doesn't exist.
    Thanks to Andrew Deason for his assistance.
    Tested-by: BuildBot <>
    Reviewed-by: Derrick Brashear <>
    (cherry picked from commit e8faeae6dcae0e566de2b21d53d3f78f3cc44e3f)
    Change-Id: Ibc9e6ddf1f281e3a3a560ed1eefcdb4776e12caa
    Reviewed-by: Andrew Deason <>
    Reviewed-by: Mark Vitale <>
    Tested-by: BuildBot <>
    Reviewed-by: Derrick Brashear <>
    Reviewed-by: Stephan Wiesand <>

 src/vol/vol-salvage.c |   55 +++++++++++++++++++++++++++++-------------------
 1 files changed, 33 insertions(+), 22 deletions(-)

OpenAFS Master Repository