Commit de395b8a authored by David Howells's avatar David Howells Committed by James Morris

CRED: Wrap task credential accesses in the HPFS 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>
Cc: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent 4ac8489a
...@@ -92,11 +92,11 @@ static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) ...@@ -92,11 +92,11 @@ static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
inc_nlink(dir); inc_nlink(dir);
insert_inode_hash(result); insert_inode_hash(result);
if (result->i_uid != current->fsuid || if (result->i_uid != current_fsuid() ||
result->i_gid != current->fsgid || result->i_gid != current_fsgid() ||
result->i_mode != (mode | S_IFDIR)) { result->i_mode != (mode | S_IFDIR)) {
result->i_uid = current->fsuid; result->i_uid = current_fsuid();
result->i_gid = current->fsgid; result->i_gid = current_fsgid();
result->i_mode = mode | S_IFDIR; result->i_mode = mode | S_IFDIR;
hpfs_write_inode_nolock(result); hpfs_write_inode_nolock(result);
} }
...@@ -184,11 +184,11 @@ static int hpfs_create(struct inode *dir, struct dentry *dentry, int mode, struc ...@@ -184,11 +184,11 @@ static int hpfs_create(struct inode *dir, struct dentry *dentry, int mode, struc
insert_inode_hash(result); insert_inode_hash(result);
if (result->i_uid != current->fsuid || if (result->i_uid != current_fsuid() ||
result->i_gid != current->fsgid || result->i_gid != current_fsgid() ||
result->i_mode != (mode | S_IFREG)) { result->i_mode != (mode | S_IFREG)) {
result->i_uid = current->fsuid; result->i_uid = current_fsuid();
result->i_gid = current->fsgid; result->i_gid = current_fsgid();
result->i_mode = mode | S_IFREG; result->i_mode = mode | S_IFREG;
hpfs_write_inode_nolock(result); hpfs_write_inode_nolock(result);
} }
...@@ -247,8 +247,8 @@ static int hpfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t ...@@ -247,8 +247,8 @@ static int hpfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t
result->i_mtime.tv_nsec = 0; result->i_mtime.tv_nsec = 0;
result->i_atime.tv_nsec = 0; result->i_atime.tv_nsec = 0;
hpfs_i(result)->i_ea_size = 0; hpfs_i(result)->i_ea_size = 0;
result->i_uid = current->fsuid; result->i_uid = current_fsuid();
result->i_gid = current->fsgid; result->i_gid = current_fsgid();
result->i_nlink = 1; result->i_nlink = 1;
result->i_size = 0; result->i_size = 0;
result->i_blocks = 1; result->i_blocks = 1;
...@@ -325,8 +325,8 @@ static int hpfs_symlink(struct inode *dir, struct dentry *dentry, const char *sy ...@@ -325,8 +325,8 @@ static int hpfs_symlink(struct inode *dir, struct dentry *dentry, const char *sy
result->i_atime.tv_nsec = 0; result->i_atime.tv_nsec = 0;
hpfs_i(result)->i_ea_size = 0; hpfs_i(result)->i_ea_size = 0;
result->i_mode = S_IFLNK | 0777; result->i_mode = S_IFLNK | 0777;
result->i_uid = current->fsuid; result->i_uid = current_fsuid();
result->i_gid = current->fsgid; result->i_gid = current_fsgid();
result->i_blocks = 1; result->i_blocks = 1;
result->i_nlink = 1; result->i_nlink = 1;
result->i_size = strlen(symlink); result->i_size = strlen(symlink);
......
...@@ -475,8 +475,8 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent) ...@@ -475,8 +475,8 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent)
init_MUTEX(&sbi->hpfs_creation_de); init_MUTEX(&sbi->hpfs_creation_de);
uid = current->uid; uid = current_uid();
gid = current->gid; gid = current_gid();
umask = current->fs->umask; umask = current->fs->umask;
lowercase = 0; lowercase = 0;
conv = CONV_BINARY; conv = CONV_BINARY;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment