CRED: Wrap task credential accesses in the devpts filesystem
David Howells [Fri, 2 Jan 2009 13:44:49 +0000 (13:44 +0000)]
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>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

fs/devpts/inode.c

index 3f309f1..fff96e1 100644 (file)
@@ -594,9 +594,9 @@ int devpts_pty_new(struct inode *ptmx_inode, struct tty_struct *tty)
        if (!inode)
                return -ENOMEM;
 
-       inode->i_ino = number+2;
-       inode->i_uid = config.setuid ? config.uid : current_fsuid();
-       inode->i_gid = config.setgid ? config.gid : current_fsgid();
+       inode->i_ino = number + 3;
+       inode->i_uid = opts->setuid ? opts->uid : current_fsuid();
+       inode->i_gid = opts->setgid ? opts->gid : current_fsgid();
        inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
        init_special_inode(inode, S_IFCHR|opts->mode, device);
        inode->i_private = tty;