lkml.org 
[lkml]   [2008]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 28/59] CRED: Wrap task credential accesses in the GFS2 filesystem
    Date
    Wrap access to task credentials so that they can be separated more easily from
    the task_struct during the introduction of COW creds.

    Change most current->(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().

    Change some task->e?[ug]id to task_e?[ug]id(). In some places it makes more
    sense to use RCU directly rather than a convenient wrapper; these will be
    addressed by later patches.

    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: James Morris <jmorris@namei.org>
    Acked-by: Serge Hallyn <serue@us.ibm.com>
    Cc: Steven Whitehouse <swhiteho@redhat.com>
    Cc: cluster-devel@redhat.com
    ---

    fs/gfs2/inode.c | 10 +++++-----
    1 files changed, 5 insertions(+), 5 deletions(-)


    diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
    index 8b0806a..c1c36f3 100644
    --- a/fs/gfs2/inode.c
    +++ b/fs/gfs2/inode.c
    @@ -701,18 +701,18 @@ static void munge_mode_uid_gid(struct gfs2_inode *dip, unsigned int *mode,
    (dip->i_inode.i_mode & S_ISUID) && dip->i_inode.i_uid) {
    if (S_ISDIR(*mode))
    *mode |= S_ISUID;
    - else if (dip->i_inode.i_uid != current->fsuid)
    + else if (dip->i_inode.i_uid != current_fsuid())
    *mode &= ~07111;
    *uid = dip->i_inode.i_uid;
    } else
    - *uid = current->fsuid;
    + *uid = current_fsuid();

    if (dip->i_inode.i_mode & S_ISGID) {
    if (S_ISDIR(*mode))
    *mode |= S_ISGID;
    *gid = dip->i_inode.i_gid;
    } else
    - *gid = current->fsgid;
    + *gid = current_fsgid();
    }

    static int alloc_dinode(struct gfs2_inode *dip, u64 *no_addr, u64 *generation)
    @@ -1122,8 +1122,8 @@ int gfs2_unlink_ok(struct gfs2_inode *dip, const struct qstr *name,
    return -EPERM;

    if ((dip->i_inode.i_mode & S_ISVTX) &&
    - dip->i_inode.i_uid != current->fsuid &&
    - ip->i_inode.i_uid != current->fsuid && !capable(CAP_FOWNER))
    + dip->i_inode.i_uid != current_fsuid() &&
    + ip->i_inode.i_uid != current_fsuid() && !capable(CAP_FOWNER))
    return -EPERM;

    if (IS_APPEND(&dip->i_inode))


    \
     
     \ /
      Last update: 2008-08-27 16:09    [W:3.839 / U:0.588 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site