Commit 91b777125175077fb74025608dba87f100586c62
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
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 | } |
fs/xfs/xfs_acl.c
... | ... | @@ -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; |