]> Pileus Git - ~andy/linux/blobdiff - fs/inode.c
Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/roste...
[~andy/linux] / fs / inode.c
index 9f4f5fecc0963c12db1f806be61999a26a9ba7ea..deb72f6c2b4fa0608b2fd5fc573108b7a250b3fc 100644 (file)
@@ -135,8 +135,8 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
        inode->i_fop = &empty_fops;
        inode->__i_nlink = 1;
        inode->i_opflags = 0;
-       inode->i_uid = 0;
-       inode->i_gid = 0;
+       i_uid_write(inode, 0);
+       i_gid_write(inode, 0);
        atomic_set(&inode->i_writecount, 0);
        inode->i_size = 0;
        inode->i_blocks = 0;
@@ -1732,11 +1732,9 @@ EXPORT_SYMBOL(inode_init_owner);
  */
 bool inode_owner_or_capable(const struct inode *inode)
 {
-       struct user_namespace *ns = inode_userns(inode);
-
-       if (current_user_ns() == ns && current_fsuid() == inode->i_uid)
+       if (uid_eq(current_fsuid(), inode->i_uid))
                return true;
-       if (ns_capable(ns, CAP_FOWNER))
+       if (inode_capable(inode, CAP_FOWNER))
                return true;
        return false;
 }