Commit 91b777125175077fb74025608dba87f100586c62

Authored by David Howells
Committed by Lachlan McIlroy
1 parent 6bfb3d065f

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: David Howells <dhowells@redhat.com>
Reviewed-by: James Morris <jmorris@namei.org>
Acked-by: Serge Hallyn <serue@us.ibm.com>

Showing 3 changed files with 5 additions and 5 deletions Side-by-side Diff

fs/xfs/linux-2.6/xfs_cred.h
... ... @@ -24,7 +24,7 @@
24 24 * Credentials
25 25 */
26 26 typedef struct cred {
27   - /* EMPTY */
  27 + /* EMPTY */
28 28 } cred_t;
29 29  
30 30 #endif /* __XFS_CRED_H__ */
fs/xfs/linux-2.6/xfs_ioctl.c
... ... @@ -1006,7 +1006,7 @@
1006 1006 * to the file owner ID, except in cases where the
1007 1007 * CAP_FSETID capability is applicable.
1008 1008 */
1009   - if (current->fsuid != ip->i_d.di_uid && !capable(CAP_FOWNER)) {
  1009 + if (current_fsuid() != ip->i_d.di_uid && !capable(CAP_FOWNER)) {
1010 1010 code = XFS_ERROR(EPERM);
1011 1011 goto error_return;
1012 1012 }
... ... @@ -366,7 +366,7 @@
366 366 return ENOTDIR;
367 367 if (vp->i_sb->s_flags & MS_RDONLY)
368 368 return EROFS;
369   - if (XFS_I(vp)->i_d.di_uid != current->fsuid && !capable(CAP_FOWNER))
  369 + if (XFS_I(vp)->i_d.di_uid != current_fsuid() && !capable(CAP_FOWNER))
370 370 return EPERM;
371 371 return 0;
372 372 }
373 373  
... ... @@ -413,13 +413,13 @@
413 413 switch (fap->acl_entry[i].ae_tag) {
414 414 case ACL_USER_OBJ:
415 415 seen_userobj = 1;
416   - if (fuid != current->fsuid)
  416 + if (fuid != current_fsuid())
417 417 continue;
418 418 matched.ae_tag = ACL_USER_OBJ;
419 419 matched.ae_perm = allows;
420 420 break;
421 421 case ACL_USER:
422   - if (fap->acl_entry[i].ae_id != current->fsuid)
  422 + if (fap->acl_entry[i].ae_id != current_fsuid())
423 423 continue;
424 424 matched.ae_tag = ACL_USER;
425 425 matched.ae_perm = allows;