Merge tag 'libnvdimm-for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
[linux-2.6-block.git] / fs / ext2 / super.c
index 38f9222606eeb22409c6e0b87044a8c45a66cb68..0a638e79bf7c05c91a1f20c1a32a2d0bc1d75c46 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/quotaops.h>
 #include <linux/uaccess.h>
 #include <linux/dax.h>
+#include <linux/iversion.h>
 #include "ext2.h"
 #include "xattr.h"
 #include "acl.h"
@@ -184,7 +185,7 @@ static struct inode *ext2_alloc_inode(struct super_block *sb)
        if (!ei)
                return NULL;
        ei->i_block_alloc_info = NULL;
-       ei->vfs_inode.i_version = 1;
+       inode_set_iversion(&ei->vfs_inode, 1);
 #ifdef CONFIG_QUOTA
        memset(&ei->i_dquot, 0, sizeof(ei->i_dquot));
 #endif
@@ -220,11 +221,13 @@ static void init_once(void *foo)
 
 static int __init init_inodecache(void)
 {
-       ext2_inode_cachep = kmem_cache_create("ext2_inode_cache",
-                                            sizeof(struct ext2_inode_info),
-                                            0, (SLAB_RECLAIM_ACCOUNT|
-                                               SLAB_MEM_SPREAD|SLAB_ACCOUNT),
-                                            init_once);
+       ext2_inode_cachep = kmem_cache_create_usercopy("ext2_inode_cache",
+                               sizeof(struct ext2_inode_info), 0,
+                               (SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|
+                                       SLAB_ACCOUNT),
+                               offsetof(struct ext2_inode_info, i_data),
+                               sizeof_field(struct ext2_inode_info, i_data),
+                               init_once);
        if (ext2_inode_cachep == NULL)
                return -ENOMEM;
        return 0;
@@ -1572,7 +1575,7 @@ out:
                return err;
        if (inode->i_size < off+len-towrite)
                i_size_write(inode, off+len-towrite);
-       inode->i_version++;
+       inode_inc_iversion(inode);
        inode->i_mtime = inode->i_ctime = current_time(inode);
        mark_inode_dirty(inode);
        return len - towrite;