Merge tag 'writeback' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux
[linux-2.6-microblaze.git] / fs / inode.c
index f4e1450..6bc8761 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;
@@ -1654,6 +1654,7 @@ void __init inode_init_early(void)
                                        HASH_EARLY,
                                        &i_hash_shift,
                                        &i_hash_mask,
+                                       0,
                                        0);
 
        for (loop = 0; loop < (1U << i_hash_shift); loop++)
@@ -1684,6 +1685,7 @@ void __init inode_init(void)
                                        0,
                                        &i_hash_shift,
                                        &i_hash_mask,
+                                       0,
                                        0);
 
        for (loop = 0; loop < (1U << i_hash_shift); loop++)
@@ -1739,11 +1741,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;
 }