fs/accessfs/inode.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/accessfs/inode.c b/fs/accessfs/inode.c index e02c275..ce62ff0 100644 --- a/fs/accessfs/inode.c +++ b/fs/accessfs/inode.c @@ -122,8 +122,8 @@ static void accessfs_init_inode(struct inode *inode, struct accessfs_entry *pe) { static const struct timespec epoch = {0, 0}; inode->i_private = pe; - inode->i_uid = pe->attr->uid; - inode->i_gid = pe->attr->gid; + i_uid_write(inode, pe->attr->uid); + i_gid_write(inode, pe->attr->gid); inode->i_mode = pe->attr->mode; /* inode->i_blksize = PAGE_CACHE_SIZE; @@ -269,8 +269,8 @@ static int accessfs_notify_change(struct dentry *dentry, struct iattr *iattr) setattr_copy(i, iattr); pe = (struct accessfs_entry *) i->i_private; - pe->attr->uid = i->i_uid; - pe->attr->gid = i->i_gid; + pe->attr->uid = i_uid_read(i); + pe->attr->gid = i_gid_read(i); pe->attr->mode = i->i_mode; return 0; } @@ -363,9 +363,9 @@ static struct dentry *accessfs_mount(struct file_system_type *fs_type, int accessfs_permitted(struct access_attr *p, int mask) { mode_t mode = p->mode; - if (current_fsuid() == p->uid) + if (uid_eq(current_fsuid(), make_kuid(current_user_ns(), p->uid))) mode >>= 6; - else if (in_group_p(p->gid)) + else if (in_group_p(make_kgid(current_user_ns(), p->gid))) mode >>= 3; return (mode & mask) == mask;