forked from luck/tmp_suning_uos_patched
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: 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>
This commit is contained in:
parent
fc7333deb7
commit
26bf1946e6
|
@ -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,
|
||||||
*/
|
*/
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user