OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_66-93-g7b27217

Gerrit Code Review gerrit@openafs.org
Sun, 22 Nov 2009 20:45:06 -0800 (PST)


The following commit has been merged in the master branch:
commit 7b272177de4c6f78db7f2315f4e30e85ab7660bb
Author: Marc Dionne <marc.c.dionne@gmail.com>
Date:   Sat Oct 24 22:10:46 2009 -0400

    Linux: Keyrings PAG handling changes
    
    We can take advantage of the fact that PagInCred now receives
    a kernel credentials structure as an argument (including any session
    keyring) to make some improvements in the handling of PAGs
    when keyrings are in use.
    
    These changes are effective only if keyrings are in use and we
    have a recent enough kernel where we can use the kernel
    credentials structure.
    
    1 - Search the session keyring of the passed credentials instead of
    the current process' to determine the PAG, if any.  This was always
    not really correct, and now we're able to do the right thing.
    In some situations such as background writeback and pre-fetching,
    this means that we'll now do it with the right credentials, even when
    in a PAG.
    
    2 - Don't use groups at all to determine PAG membership.  Doing so
    can lead to some inconsistent situations such as the one described
    in RT 125198, where a process gets access through a soon to be
    deleted PAG.  Make PagInCred look exclusively at the keyrings.
    Groups are still updated to try to reflect the current PAG for now,
    if the passed credentials belong to the current process.
    
    Note that a process can no longer get a PAG's privileges simply by
    adding the corresponding groups to its group list.
    
    No behaviour change for kernels prior to 2.6.29.
    
    FIXES 125198
    
    Change-Id: Ifb171993cc9ca9d6a97fb7312909485ec0666efb
    Reviewed-on: http://gerrit.openafs.org/730
    Reviewed-by: Derrick Brashear <shadow@dementia.org>
    Tested-by: Derrick Brashear <shadow@dementia.org>

 src/afs/LINUX/osi_groups.c     |   36 ++++++++++++++++++++++
 src/afs/LINUX/osi_prototypes.h |    1 +
 src/afs/afs_osi_pag.c          |   66 +++++++++++++++++++--------------------
 3 files changed, 69 insertions(+), 34 deletions(-)

-- 
OpenAFS Master Repository