Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91b77712 authored by David Howells's avatar David Howells Committed by Lachlan McIlroy
Browse files

CRED: Wrap task credential accesses in the XFS 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>
parent 6bfb3d06
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1006,7 +1006,7 @@ xfs_ioctl_setattr(
	 * to the file owner ID, except in cases where the
	 * CAP_FSETID capability is applicable.
	 */
	if (current->fsuid != ip->i_d.di_uid && !capable(CAP_FOWNER)) {
	if (current_fsuid() != ip->i_d.di_uid && !capable(CAP_FOWNER)) {
		code = XFS_ERROR(EPERM);
		goto error_return;
	}
+3 −3
Original line number Diff line number Diff line
@@ -366,7 +366,7 @@ xfs_acl_allow_set(
		return ENOTDIR;
	if (vp->i_sb->s_flags & MS_RDONLY)
		return EROFS;
	if (XFS_I(vp)->i_d.di_uid != current->fsuid && !capable(CAP_FOWNER))
	if (XFS_I(vp)->i_d.di_uid != current_fsuid() && !capable(CAP_FOWNER))
		return EPERM;
	return 0;
}
@@ -413,13 +413,13 @@ xfs_acl_access(
		switch (fap->acl_entry[i].ae_tag) {
		case ACL_USER_OBJ:
			seen_userobj = 1;
			if (fuid != current->fsuid)
			if (fuid != current_fsuid())
				continue;
			matched.ae_tag = ACL_USER_OBJ;
			matched.ae_perm = allows;
			break;
		case ACL_USER:
			if (fap->acl_entry[i].ae_id != current->fsuid)
			if (fap->acl_entry[i].ae_id != current_fsuid())
				continue;
			matched.ae_tag = ACL_USER;
			matched.ae_perm = allows;
+1 −1

File changed.

Contains only whitespace changes.