OpenAFS Master Repository branch, openafs-stable-1_4_x, updated. openafs-stable-1_4_12-133-g89822eb

Gerrit Code Review gerrit@openafs.org
Sat, 29 Oct 2011 20:05:30 -0700 (PDT)


The following commit has been merged in the openafs-stable-1_4_x branch:
commit 89822eb8c2415487b7ea53f861e64079299ddfd3
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Fri Aug 12 14:50:26 2011 -0500

    LINUX: Revert group changes on keyring failure
    
    On Linux kernels that support keyrings, when we setpag we try to add
    the PAG to the session keyring and to the supplemental group list.
    Currently, if we fail to add the PAG to the keyring (which may happen
    due to key quotas, or possibly other reasons), we return failure but
    the group list is still modified with the new PAG in it.
    
    Therefore, if the keyring-based approach fails, the new PAG may still
    be in use, but there are no keyring keys associated with that PAG, so
    the PAG may never get destroyed. This can cause a large number of PAGs
    to accumulate over time, causing performance problems.
    
    So, change this so that, in the event that keyring installation fails,
    we revert the group list back to what it was before we touched it.
    Also mark all unixusers with the new PAG as expired, in case one got
    created during processing. Thus, the new PAG never gets used.
    
    Reviewed-on: http://gerrit.openafs.org/5238
    Tested-by: Derrick Brashear <shadow@dementix.org>
    Reviewed-by: Derrick Brashear <shadow@dementix.org>
    (cherry picked from commit ee2fbffb04bb8b5098354646e262afa90c1b6f59)
    
    Change-Id: I7a3dbf94f7f862e5e7d3ae4d54d3acacd48ed594
    Reviewed-on: http://gerrit.openafs.org/5729
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Derrick Brashear <shadow@dementix.org>

 src/afs/LINUX/osi_groups.c     |   49 ++++++++++++++++++++++++++++-----------
 src/afs/LINUX/osi_prototypes.h |    2 +-
 src/afs/afs_osi_pag.c          |    2 +-
 3 files changed, 37 insertions(+), 16 deletions(-)

-- 
OpenAFS Master Repository