CRED: Wrap task credential accesses in the UBIFS filesystem
authorDavid Howells <dhowells@redhat.com>
Thu, 13 Nov 2008 23:39:03 +0000 (10:39 +1100)
committerJames Morris <jmorris@namei.org>
Thu, 13 Nov 2008 23:39:03 +0000 (10:39 +1100)
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: Artem Bityutskiy <dedekind@infradead.org>
Cc: Adrian Hunter <ext-adrian.hunter@nokia.com>
Cc: linux-mtd@lists.infradead.org
Signed-off-by: James Morris <jmorris@namei.org>
fs/ubifs/budget.c
fs/ubifs/dir.c

index 1a4973e106643dd2badce2eaeb805f82be0744a4..4a18f084cc427a7df83214055d9efa023a549444 100644 (file)
@@ -363,7 +363,7 @@ long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs)
  */
 static int can_use_rp(struct ubifs_info *c)
 {
-       if (current->fsuid == c->rp_uid || capable(CAP_SYS_RESOURCE) ||
+       if (current_fsuid() == c->rp_uid || capable(CAP_SYS_RESOURCE) ||
            (c->rp_gid != 0 && in_group_p(c->rp_gid)))
                return 1;
        return 0;
index 526c01ec80032be9205e6057c48f9188b136b6e8..856189014a3a3706368eb9d6dc987e2ba7c50233 100644 (file)
@@ -104,13 +104,13 @@ struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir,
         */
        inode->i_flags |= (S_NOCMTIME);
 
-       inode->i_uid = current->fsuid;
+       inode->i_uid = current_fsuid();
        if (dir->i_mode & S_ISGID) {
                inode->i_gid = dir->i_gid;
                if (S_ISDIR(mode))
                        mode |= S_ISGID;
        } else
-               inode->i_gid = current->fsgid;
+               inode->i_gid = current_fsgid();
        inode->i_mode = mode;
        inode->i_mtime = inode->i_atime = inode->i_ctime =
                         ubifs_current_time(inode);