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

Commit b19c2a3b authored by David Howells's avatar David Howells Committed by James Morris
Browse files

CRED: Wrap task credential accesses in the OCFS2 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>
Acked-by: default avatarMark Fasheh <mfasheh@suse.com>
Cc: Joel Becker <joel.becker@oracle.com>
Cc: ocfs2-devel@oss.oracle.com
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent 5cc0a840
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -339,8 +339,8 @@ static struct inode *dlmfs_get_root_inode(struct super_block *sb)
		ip = DLMFS_I(inode);
		ip = DLMFS_I(inode);


		inode->i_mode = mode;
		inode->i_mode = mode;
		inode->i_uid = current->fsuid;
		inode->i_uid = current_fsuid();
		inode->i_gid = current->fsgid;
		inode->i_gid = current_fsgid();
		inode->i_blocks = 0;
		inode->i_blocks = 0;
		inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
		inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
@@ -365,8 +365,8 @@ static struct inode *dlmfs_get_inode(struct inode *parent,
		return NULL;
		return NULL;


	inode->i_mode = mode;
	inode->i_mode = mode;
	inode->i_uid = current->fsuid;
	inode->i_uid = current_fsuid();
	inode->i_gid = current->fsgid;
	inode->i_gid = current_fsgid();
	inode->i_blocks = 0;
	inode->i_blocks = 0;
	inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
	inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+2 −2
Original line number Original line Diff line number Diff line
@@ -421,13 +421,13 @@ static int ocfs2_mknod_locked(struct ocfs2_super *osb,
	fe->i_blkno = cpu_to_le64(fe_blkno);
	fe->i_blkno = cpu_to_le64(fe_blkno);
	fe->i_suballoc_bit = cpu_to_le16(suballoc_bit);
	fe->i_suballoc_bit = cpu_to_le16(suballoc_bit);
	fe->i_suballoc_slot = cpu_to_le16(inode_ac->ac_alloc_slot);
	fe->i_suballoc_slot = cpu_to_le16(inode_ac->ac_alloc_slot);
	fe->i_uid = cpu_to_le32(current->fsuid);
	fe->i_uid = cpu_to_le32(current_fsuid());
	if (dir->i_mode & S_ISGID) {
	if (dir->i_mode & S_ISGID) {
		fe->i_gid = cpu_to_le32(dir->i_gid);
		fe->i_gid = cpu_to_le32(dir->i_gid);
		if (S_ISDIR(mode))
		if (S_ISDIR(mode))
			mode |= S_ISGID;
			mode |= S_ISGID;
	} else
	} else
		fe->i_gid = cpu_to_le32(current->fsgid);
		fe->i_gid = cpu_to_le32(current_fsgid());
	fe->i_mode = cpu_to_le16(mode);
	fe->i_mode = cpu_to_le16(mode);
	if (S_ISCHR(mode) || S_ISBLK(mode))
	if (S_ISCHR(mode) || S_ISBLK(mode))
		fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev));
		fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev));