Commit 26bf1946 authored by David Howells's avatar David Howells Committed by James Morris

CRED: Wrap task credential accesses in the UBIFS filesystem

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: default avatarDavid Howells <dhowells@redhat.com>
Reviewed-by: default avatarJames Morris <jmorris@namei.org>
Acked-by: default avatarSerge 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: default avatarJames Morris <jmorris@namei.org>
parent fc7333de
...@@ -363,7 +363,7 @@ long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs) ...@@ -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) 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))) (c->rp_gid != 0 && in_group_p(c->rp_gid)))
return 1; return 1;
return 0; return 0;
......
...@@ -104,13 +104,13 @@ struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir, ...@@ -104,13 +104,13 @@ struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir,
*/ */
inode->i_flags |= (S_NOCMTIME); inode->i_flags |= (S_NOCMTIME);
inode->i_uid = current->fsuid; inode->i_uid = current_fsuid();
if (dir->i_mode & S_ISGID) { if (dir->i_mode & S_ISGID) {
inode->i_gid = dir->i_gid; inode->i_gid = dir->i_gid;
if (S_ISDIR(mode)) if (S_ISDIR(mode))
mode |= S_ISGID; mode |= S_ISGID;
} else } else
inode->i_gid = current->fsgid; inode->i_gid = current_fsgid();
inode->i_mode = mode; inode->i_mode = mode;
inode->i_mtime = inode->i_atime = inode->i_ctime = inode->i_mtime = inode->i_atime = inode->i_ctime =
ubifs_current_time(inode); ubifs_current_time(inode);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment